| author | |
| committer | |
| log | 963651bbf292b21017cac9e977a933b5e2a8c671 |
| tree | 4b2dc8071e8ebe522f24d8dec8584582b25261d5 |
| parent | cdc9d65b0db3e988ae0f4006e05c178312518bfb |
| parent | 4c5abe5ac664a7214d822b09703682a5cac6891c |
| signature |
x86_64: rewrite float conversions27 files changed, 14666 insertions(+), 2274 deletions(-)
build.zig+1-1| ... | @@ -450,7 +450,7 @@ pub fn build(b: *std.Build) !void { | ... | @@ -450,7 +450,7 @@ pub fn build(b: *std.Build) !void { |
| 450 | .skip_non_native = skip_non_native, | 450 | .skip_non_native = skip_non_native, |
| 451 | .skip_libc = skip_libc, | 451 | .skip_libc = skip_libc, |
| 452 | .use_llvm = use_llvm, | 452 | .use_llvm = use_llvm, |
| 453 | .max_rss = 1 * 1024 * 1024 * 1024, | 453 | .max_rss = 1.25 * 1024 * 1024 * 1024, |
| 454 | })); | 454 | })); |
| 455 | 455 | ||
| 456 | test_modules_step.dependOn(tests.addModuleTests(b, .{ | 456 | test_modules_step.dependOn(tests.addModuleTests(b, .{ |
lib/std/zig/Zir.zig+2-1| ... | @@ -2114,7 +2114,7 @@ pub const Inst = struct { | ... | @@ -2114,7 +2114,7 @@ pub const Inst = struct { |
| 2114 | ref_start_index = static_len, | 2114 | ref_start_index = static_len, |
| 2115 | _, | 2115 | _, |
| 2116 | 2116 | ||
| 2117 | pub const static_len = 92; | 2117 | pub const static_len = 93; |
| 2118 | 2118 | ||
| 2119 | pub fn toRef(i: Index) Inst.Ref { | 2119 | pub fn toRef(i: Index) Inst.Ref { |
| 2120 | return @enumFromInt(@intFromEnum(Index.ref_start_index) + @intFromEnum(i)); | 2120 | return @enumFromInt(@intFromEnum(Index.ref_start_index) + @intFromEnum(i)); |
| ... | @@ -2215,6 +2215,7 @@ pub const Inst = struct { | ... | @@ -2215,6 +2215,7 @@ pub const Inst = struct { |
| 2215 | vector_4_u64_type, | 2215 | vector_4_u64_type, |
| 2216 | vector_4_f16_type, | 2216 | vector_4_f16_type, |
| 2217 | vector_8_f16_type, | 2217 | vector_8_f16_type, |
| 2218 | vector_2_f32_type, | ||
| 2218 | vector_4_f32_type, | 2219 | vector_4_f32_type, |
| 2219 | vector_8_f32_type, | 2220 | vector_8_f32_type, |
| 2220 | vector_2_f64_type, | 2221 | vector_2_f64_type, |
src/Air.zig+3-14| ... | @@ -266,7 +266,8 @@ pub const Inst = struct { | ... | @@ -266,7 +266,8 @@ pub const Inst = struct { |
| 266 | /// Boolean or binary NOT. | 266 | /// Boolean or binary NOT. |
| 267 | /// Uses the `ty_op` field. | 267 | /// Uses the `ty_op` field. |
| 268 | not, | 268 | not, |
| 269 | /// Reinterpret the memory representation of a value as a different type. | 269 | /// Reinterpret the bits of a value as a different type. This is like `@bitCast` but |
| 270 | /// also supports enums and pointers. | ||
| 270 | /// Uses the `ty_op` field. | 271 | /// Uses the `ty_op` field. |
| 271 | bitcast, | 272 | bitcast, |
| 272 | /// Uses the `ty_pl` field with payload `Block`. A block runs its body which always ends | 273 | /// Uses the `ty_pl` field with payload `Block`. A block runs its body which always ends |
| ... | @@ -517,14 +518,6 @@ pub const Inst = struct { | ... | @@ -517,14 +518,6 @@ pub const Inst = struct { |
| 517 | /// Read a value from a pointer. | 518 | /// Read a value from a pointer. |
| 518 | /// Uses the `ty_op` field. | 519 | /// Uses the `ty_op` field. |
| 519 | load, | 520 | load, |
| 520 | /// Converts a pointer to its address. Result type is always `usize`. | ||
| 521 | /// Pointer type size may be any, including slice. | ||
| 522 | /// Uses the `un_op` field. | ||
| 523 | int_from_ptr, | ||
| 524 | /// Given a boolean, returns 0 or 1. | ||
| 525 | /// Result type is always `u1`. | ||
| 526 | /// Uses the `un_op` field. | ||
| 527 | int_from_bool, | ||
| 528 | /// Return a value from a function. | 521 | /// Return a value from a function. |
| 529 | /// Result type is always noreturn; no instructions in a block follow this one. | 522 | /// Result type is always noreturn; no instructions in a block follow this one. |
| 530 | /// Uses the `un_op` field. | 523 | /// Uses the `un_op` field. |
| ... | @@ -1008,6 +1001,7 @@ pub const Inst = struct { | ... | @@ -1008,6 +1001,7 @@ pub const Inst = struct { |
| 1008 | vector_4_u64_type = @intFromEnum(InternPool.Index.vector_4_u64_type), | 1001 | vector_4_u64_type = @intFromEnum(InternPool.Index.vector_4_u64_type), |
| 1009 | vector_4_f16_type = @intFromEnum(InternPool.Index.vector_4_f16_type), | 1002 | vector_4_f16_type = @intFromEnum(InternPool.Index.vector_4_f16_type), |
| 1010 | vector_8_f16_type = @intFromEnum(InternPool.Index.vector_8_f16_type), | 1003 | vector_8_f16_type = @intFromEnum(InternPool.Index.vector_8_f16_type), |
| 1004 | vector_2_f32_type = @intFromEnum(InternPool.Index.vector_2_f32_type), | ||
| 1011 | vector_4_f32_type = @intFromEnum(InternPool.Index.vector_4_f32_type), | 1005 | vector_4_f32_type = @intFromEnum(InternPool.Index.vector_4_f32_type), |
| 1012 | vector_8_f32_type = @intFromEnum(InternPool.Index.vector_8_f32_type), | 1006 | vector_8_f32_type = @intFromEnum(InternPool.Index.vector_8_f32_type), |
| 1013 | vector_2_f64_type = @intFromEnum(InternPool.Index.vector_2_f64_type), | 1007 | vector_2_f64_type = @intFromEnum(InternPool.Index.vector_2_f64_type), |
| ... | @@ -1542,7 +1536,6 @@ pub fn typeOfIndex(air: *const Air, inst: Air.Inst.Index, ip: *const InternPool) | ... | @@ -1542,7 +1536,6 @@ pub fn typeOfIndex(air: *const Air, inst: Air.Inst.Index, ip: *const InternPool) |
| 1542 | .c_va_end, | 1536 | .c_va_end, |
| 1543 | => return Type.void, | 1537 | => return Type.void, |
| 1544 | 1538 | ||
| 1545 | .int_from_ptr, | ||
| 1546 | .slice_len, | 1539 | .slice_len, |
| 1547 | .ret_addr, | 1540 | .ret_addr, |
| 1548 | .frame_addr, | 1541 | .frame_addr, |
| ... | @@ -1552,8 +1545,6 @@ pub fn typeOfIndex(air: *const Air, inst: Air.Inst.Index, ip: *const InternPool) | ... | @@ -1552,8 +1545,6 @@ pub fn typeOfIndex(air: *const Air, inst: Air.Inst.Index, ip: *const InternPool) |
| 1552 | .wasm_memory_grow => return Type.isize, | 1545 | .wasm_memory_grow => return Type.isize, |
| 1553 | .wasm_memory_size => return Type.usize, | 1546 | .wasm_memory_size => return Type.usize, |
| 1554 | 1547 | ||
| 1555 | .int_from_bool => return Type.u1, | ||
| 1556 | |||
| 1557 | .tag_name, .error_name => return Type.slice_const_u8_sentinel_0, | 1548 | .tag_name, .error_name => return Type.slice_const_u8_sentinel_0, |
| 1558 | 1549 | ||
| 1559 | .call, .call_always_tail, .call_never_tail, .call_never_inline => { | 1550 | .call, .call_always_tail, .call_never_tail, .call_never_inline => { |
| ... | @@ -1815,8 +1806,6 @@ pub fn mustLower(air: Air, inst: Air.Inst.Index, ip: *const InternPool) bool { | ... | @@ -1815,8 +1806,6 @@ pub fn mustLower(air: Air, inst: Air.Inst.Index, ip: *const InternPool) bool { |
| 1815 | .is_non_err_ptr, | 1806 | .is_non_err_ptr, |
| 1816 | .bool_and, | 1807 | .bool_and, |
| 1817 | .bool_or, | 1808 | .bool_or, |
| 1818 | .int_from_ptr, | ||
| 1819 | .int_from_bool, | ||
| 1820 | .fptrunc, | 1809 | .fptrunc, |
| 1821 | .fpext, | 1810 | .fpext, |
| 1822 | .intcast, | 1811 | .intcast, |
src/Air/types_resolved.zig-2| ... | @@ -208,8 +208,6 @@ fn checkBody(air: Air, body: []const Air.Inst.Index, zcu: *Zcu) bool { | ... | @@ -208,8 +208,6 @@ fn checkBody(air: Air, body: []const Air.Inst.Index, zcu: *Zcu) bool { |
| 208 | .is_non_err, | 208 | .is_non_err, |
| 209 | .is_err_ptr, | 209 | .is_err_ptr, |
| 210 | .is_non_err_ptr, | 210 | .is_non_err_ptr, |
| 211 | .int_from_ptr, | ||
| 212 | .int_from_bool, | ||
| 213 | .ret, | 211 | .ret, |
| 214 | .ret_safe, | 212 | .ret_safe, |
| 215 | .ret_load, | 213 | .ret_load, |
src/InternPool.zig+5| ... | @@ -4593,6 +4593,7 @@ pub const Index = enum(u32) { | ... | @@ -4593,6 +4593,7 @@ pub const Index = enum(u32) { |
| 4593 | vector_4_u64_type, | 4593 | vector_4_u64_type, |
| 4594 | vector_4_f16_type, | 4594 | vector_4_f16_type, |
| 4595 | vector_8_f16_type, | 4595 | vector_8_f16_type, |
| 4596 | vector_2_f32_type, | ||
| 4596 | vector_4_f32_type, | 4597 | vector_4_f32_type, |
| 4597 | vector_8_f32_type, | 4598 | vector_8_f32_type, |
| 4598 | vector_2_f64_type, | 4599 | vector_2_f64_type, |
| ... | @@ -5124,6 +5125,8 @@ pub const static_keys = [_]Key{ | ... | @@ -5124,6 +5125,8 @@ pub const static_keys = [_]Key{ |
| 5124 | .{ .vector_type = .{ .len = 4, .child = .f16_type } }, | 5125 | .{ .vector_type = .{ .len = 4, .child = .f16_type } }, |
| 5125 | // @Vector(8, f16) | 5126 | // @Vector(8, f16) |
| 5126 | .{ .vector_type = .{ .len = 8, .child = .f16_type } }, | 5127 | .{ .vector_type = .{ .len = 8, .child = .f16_type } }, |
| 5128 | // @Vector(2, f32) | ||
| 5129 | .{ .vector_type = .{ .len = 2, .child = .f32_type } }, | ||
| 5127 | // @Vector(4, f32) | 5130 | // @Vector(4, f32) |
| 5128 | .{ .vector_type = .{ .len = 4, .child = .f32_type } }, | 5131 | .{ .vector_type = .{ .len = 4, .child = .f32_type } }, |
| 5129 | // @Vector(8, f32) | 5132 | // @Vector(8, f32) |
| ... | @@ -11778,6 +11781,7 @@ pub fn typeOf(ip: *const InternPool, index: Index) Index { | ... | @@ -11778,6 +11781,7 @@ pub fn typeOf(ip: *const InternPool, index: Index) Index { |
| 11778 | .vector_4_u64_type, | 11781 | .vector_4_u64_type, |
| 11779 | .vector_4_f16_type, | 11782 | .vector_4_f16_type, |
| 11780 | .vector_8_f16_type, | 11783 | .vector_8_f16_type, |
| 11784 | .vector_2_f32_type, | ||
| 11781 | .vector_4_f32_type, | 11785 | .vector_4_f32_type, |
| 11782 | .vector_8_f32_type, | 11786 | .vector_8_f32_type, |
| 11783 | .vector_2_f64_type, | 11787 | .vector_2_f64_type, |
| ... | @@ -12117,6 +12121,7 @@ pub fn zigTypeTag(ip: *const InternPool, index: Index) std.builtin.TypeId { | ... | @@ -12117,6 +12121,7 @@ pub fn zigTypeTag(ip: *const InternPool, index: Index) std.builtin.TypeId { |
| 12117 | .vector_4_u64_type, | 12121 | .vector_4_u64_type, |
| 12118 | .vector_4_f16_type, | 12122 | .vector_4_f16_type, |
| 12119 | .vector_8_f16_type, | 12123 | .vector_8_f16_type, |
| 12124 | .vector_2_f32_type, | ||
| 12120 | .vector_4_f32_type, | 12125 | .vector_4_f32_type, |
| 12121 | .vector_8_f32_type, | 12126 | .vector_8_f32_type, |
| 12122 | .vector_2_f64_type, | 12127 | .vector_2_f64_type, |
src/Liveness.zig-4| ... | @@ -402,8 +402,6 @@ pub fn categorizeOperand( | ... | @@ -402,8 +402,6 @@ pub fn categorizeOperand( |
| 402 | .is_non_err, | 402 | .is_non_err, |
| 403 | .is_err_ptr, | 403 | .is_err_ptr, |
| 404 | .is_non_err_ptr, | 404 | .is_non_err_ptr, |
| 405 | .int_from_ptr, | ||
| 406 | .int_from_bool, | ||
| 407 | .is_named_enum_value, | 405 | .is_named_enum_value, |
| 408 | .tag_name, | 406 | .tag_name, |
| 409 | .error_name, | 407 | .error_name, |
| ... | @@ -1028,8 +1026,6 @@ fn analyzeInst( | ... | @@ -1028,8 +1026,6 @@ fn analyzeInst( |
| 1028 | .is_non_err, | 1026 | .is_non_err, |
| 1029 | .is_err_ptr, | 1027 | .is_err_ptr, |
| 1030 | .is_non_err_ptr, | 1028 | .is_non_err_ptr, |
| 1031 | .int_from_ptr, | ||
| 1032 | .int_from_bool, | ||
| 1033 | .is_named_enum_value, | 1029 | .is_named_enum_value, |
| 1034 | .tag_name, | 1030 | .tag_name, |
| 1035 | .error_name, | 1031 | .error_name, |
src/Liveness/Verify.zig-2| ... | @@ -130,8 +130,6 @@ fn verifyBody(self: *Verify, body: []const Air.Inst.Index) Error!void { | ... | @@ -130,8 +130,6 @@ fn verifyBody(self: *Verify, body: []const Air.Inst.Index) Error!void { |
| 130 | .is_non_err, | 130 | .is_non_err, |
| 131 | .is_err_ptr, | 131 | .is_err_ptr, |
| 132 | .is_non_err_ptr, | 132 | .is_non_err_ptr, |
| 133 | .int_from_ptr, | ||
| 134 | .int_from_bool, | ||
| 135 | .is_named_enum_value, | 133 | .is_named_enum_value, |
| 136 | .tag_name, | 134 | .tag_name, |
| 137 | .error_name, | 135 | .error_name, |
src/Sema.zig+71-33| ... | @@ -10038,6 +10038,8 @@ fn zirIntFromPtr(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError! | ... | @@ -10038,6 +10038,8 @@ fn zirIntFromPtr(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError! |
| 10038 | }; | 10038 | }; |
| 10039 | return sema.failWithOwnedErrorMsg(block, msg); | 10039 | return sema.failWithOwnedErrorMsg(block, msg); |
| 10040 | } | 10040 | } |
| 10041 | const len = if (is_vector) operand_ty.vectorLen(zcu) else undefined; | ||
| 10042 | const dest_ty: Type = if (is_vector) try pt.vectorType(.{ .child = .usize_type, .len = len }) else .usize; | ||
| 10041 | if (try sema.resolveValueIntable(operand)) |operand_val| ct: { | 10043 | if (try sema.resolveValueIntable(operand)) |operand_val| ct: { |
| 10042 | if (!is_vector) { | 10044 | if (!is_vector) { |
| 10043 | if (operand_val.isUndef(zcu)) { | 10045 | if (operand_val.isUndef(zcu)) { |
| ... | @@ -10048,8 +10050,6 @@ fn zirIntFromPtr(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError! | ... | @@ -10048,8 +10050,6 @@ fn zirIntFromPtr(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError! |
| 10048 | (try operand_val.toUnsignedIntSema(pt)), | 10050 | (try operand_val.toUnsignedIntSema(pt)), |
| 10049 | )).toIntern()); | 10051 | )).toIntern()); |
| 10050 | } | 10052 | } |
| 10051 | const len = operand_ty.vectorLen(zcu); | ||
| 10052 | const dest_ty = try pt.vectorType(.{ .child = .usize_type, .len = len }); | ||
| 10053 | const new_elems = try sema.arena.alloc(InternPool.Index, len); | 10053 | const new_elems = try sema.arena.alloc(InternPool.Index, len); |
| 10054 | for (new_elems, 0..) |*new_elem, i| { | 10054 | for (new_elems, 0..) |*new_elem, i| { |
| 10055 | const ptr_val = try operand_val.elemValue(pt, i); | 10055 | const ptr_val = try operand_val.elemValue(pt, i); |
| ... | @@ -10073,16 +10073,14 @@ fn zirIntFromPtr(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError! | ... | @@ -10073,16 +10073,14 @@ fn zirIntFromPtr(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError! |
| 10073 | } | 10073 | } |
| 10074 | try sema.requireRuntimeBlock(block, block.nodeOffset(inst_data.src_node), ptr_src); | 10074 | try sema.requireRuntimeBlock(block, block.nodeOffset(inst_data.src_node), ptr_src); |
| 10075 | try sema.validateRuntimeValue(block, ptr_src, operand); | 10075 | try sema.validateRuntimeValue(block, ptr_src, operand); |
| 10076 | if (!is_vector) { | 10076 | if (!is_vector or zcu.backendSupportsFeature(.all_vector_instructions)) { |
| 10077 | return block.addUnOp(.int_from_ptr, operand); | 10077 | return block.addBitCast(dest_ty, operand); |
| 10078 | } | 10078 | } |
| 10079 | const len = operand_ty.vectorLen(zcu); | ||
| 10080 | const dest_ty = try pt.vectorType(.{ .child = .usize_type, .len = len }); | ||
| 10081 | const new_elems = try sema.arena.alloc(Air.Inst.Ref, len); | 10079 | const new_elems = try sema.arena.alloc(Air.Inst.Ref, len); |
| 10082 | for (new_elems, 0..) |*new_elem, i| { | 10080 | for (new_elems, 0..) |*new_elem, i| { |
| 10083 | const idx_ref = try pt.intRef(Type.usize, i); | 10081 | const idx_ref = try pt.intRef(Type.usize, i); |
| 10084 | const old_elem = try block.addBinOp(.array_elem_val, operand, idx_ref); | 10082 | const old_elem = try block.addBinOp(.array_elem_val, operand, idx_ref); |
| 10085 | new_elem.* = try block.addUnOp(.int_from_ptr, old_elem); | 10083 | new_elem.* = try block.addBitCast(.usize, old_elem); |
| 10086 | } | 10084 | } |
| 10087 | return block.addAggregateInit(dest_ty, new_elems); | 10085 | return block.addAggregateInit(dest_ty, new_elems); |
| 10088 | } | 10086 | } |
| ... | @@ -10569,7 +10567,7 @@ fn zirFloatCast(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!A | ... | @@ -10569,7 +10567,7 @@ fn zirFloatCast(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!A |
| 10569 | if (dst_bits >= src_bits) { | 10567 | if (dst_bits >= src_bits) { |
| 10570 | return sema.coerce(block, dest_ty, operand, operand_src); | 10568 | return sema.coerce(block, dest_ty, operand, operand_src); |
| 10571 | } | 10569 | } |
| 10572 | if (!is_vector) { | 10570 | if (!is_vector or zcu.backendSupportsFeature(.all_vector_instructions)) { |
| 10573 | return block.addTyOp(.fptrunc, dest_ty, operand); | 10571 | return block.addTyOp(.fptrunc, dest_ty, operand); |
| 10574 | } | 10572 | } |
| 10575 | const vec_len = operand_ty.vectorLen(zcu); | 10573 | const vec_len = operand_ty.vectorLen(zcu); |
| ... | @@ -14746,7 +14744,7 @@ fn zirArrayCat(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai | ... | @@ -14746,7 +14744,7 @@ fn zirArrayCat(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai |
| 14746 | }); | 14744 | }); |
| 14747 | 14745 | ||
| 14748 | const many_ty = slice_ty.slicePtrFieldType(zcu); | 14746 | const many_ty = slice_ty.slicePtrFieldType(zcu); |
| 14749 | const many_alloc = try block.addTyOp(.bitcast, many_ty, mutable_alloc); | 14747 | const many_alloc = try block.addBitCast(many_ty, mutable_alloc); |
| 14750 | 14748 | ||
| 14751 | // lhs_dest_slice = dest[0..lhs.len] | 14749 | // lhs_dest_slice = dest[0..lhs.len] |
| 14752 | const slice_ty_ref = Air.internedToRef(slice_ty.toIntern()); | 14750 | const slice_ty_ref = Air.internedToRef(slice_ty.toIntern()); |
| ... | @@ -14796,7 +14794,7 @@ fn zirArrayCat(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai | ... | @@ -14796,7 +14794,7 @@ fn zirArrayCat(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai |
| 14796 | try sema.storePtr2(block, src, elem_ptr, src, init, lhs_src, .store); | 14794 | try sema.storePtr2(block, src, elem_ptr, src, init, lhs_src, .store); |
| 14797 | } | 14795 | } |
| 14798 | 14796 | ||
| 14799 | return block.addTyOp(.bitcast, constant_alloc_ty, mutable_alloc); | 14797 | return block.addBitCast(constant_alloc_ty, mutable_alloc); |
| 14800 | } | 14798 | } |
| 14801 | 14799 | ||
| 14802 | var elem_i: u32 = 0; | 14800 | var elem_i: u32 = 0; |
| ... | @@ -14829,7 +14827,7 @@ fn zirArrayCat(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai | ... | @@ -14829,7 +14827,7 @@ fn zirArrayCat(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai |
| 14829 | try sema.storePtr2(block, src, elem_ptr, src, init, lhs_src, .store); | 14827 | try sema.storePtr2(block, src, elem_ptr, src, init, lhs_src, .store); |
| 14830 | } | 14828 | } |
| 14831 | 14829 | ||
| 14832 | return block.addTyOp(.bitcast, constant_alloc_ty, mutable_alloc); | 14830 | return block.addBitCast(constant_alloc_ty, mutable_alloc); |
| 14833 | } | 14831 | } |
| 14834 | 14832 | ||
| 14835 | const element_refs = try sema.arena.alloc(Air.Inst.Ref, result_len); | 14833 | const element_refs = try sema.arena.alloc(Air.Inst.Ref, result_len); |
| ... | @@ -16596,8 +16594,8 @@ fn analyzeArithmetic( | ... | @@ -16596,8 +16594,8 @@ fn analyzeArithmetic( |
| 16596 | }; | 16594 | }; |
| 16597 | 16595 | ||
| 16598 | try sema.requireRuntimeBlock(block, src, runtime_src); | 16596 | try sema.requireRuntimeBlock(block, src, runtime_src); |
| 16599 | const lhs_int = try block.addUnOp(.int_from_ptr, lhs); | 16597 | const lhs_int = try block.addBitCast(.usize, lhs); |
| 16600 | const rhs_int = try block.addUnOp(.int_from_ptr, rhs); | 16598 | const rhs_int = try block.addBitCast(.usize, rhs); |
| 16601 | const address = try block.addBinOp(.sub_wrap, lhs_int, rhs_int); | 16599 | const address = try block.addBinOp(.sub_wrap, lhs_int, rhs_int); |
| 16602 | return try block.addBinOp(.div_exact, address, try pt.intRef(Type.usize, elem_size)); | 16600 | return try block.addBinOp(.div_exact, address, try pt.intRef(Type.usize, elem_size)); |
| 16603 | } | 16601 | } |
| ... | @@ -21215,14 +21213,14 @@ fn zirIntFromBool(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError | ... | @@ -21215,14 +21213,14 @@ fn zirIntFromBool(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError |
| 21215 | if (operand_scalar_ty.toIntern() != .bool_type) { | 21213 | if (operand_scalar_ty.toIntern() != .bool_type) { |
| 21216 | return sema.fail(block, src, "expected 'bool', found '{}'", .{operand_scalar_ty.zigTypeTag(zcu)}); | 21214 | return sema.fail(block, src, "expected 'bool', found '{}'", .{operand_scalar_ty.zigTypeTag(zcu)}); |
| 21217 | } | 21215 | } |
| 21216 | const len = if (is_vector) operand_ty.vectorLen(zcu) else undefined; | ||
| 21217 | const dest_ty: Type = if (is_vector) try pt.vectorType(.{ .child = .u1_type, .len = len }) else .u1; | ||
| 21218 | if (try sema.resolveValue(operand)) |val| { | 21218 | if (try sema.resolveValue(operand)) |val| { |
| 21219 | if (!is_vector) { | 21219 | if (!is_vector) { |
| 21220 | if (val.isUndef(zcu)) return pt.undefRef(Type.u1); | 21220 | if (val.isUndef(zcu)) return pt.undefRef(Type.u1); |
| 21221 | if (val.toBool()) return Air.internedToRef((try pt.intValue(Type.u1, 1)).toIntern()); | 21221 | if (val.toBool()) return Air.internedToRef((try pt.intValue(Type.u1, 1)).toIntern()); |
| 21222 | return Air.internedToRef((try pt.intValue(Type.u1, 0)).toIntern()); | 21222 | return Air.internedToRef((try pt.intValue(Type.u1, 0)).toIntern()); |
| 21223 | } | 21223 | } |
| 21224 | const len = operand_ty.vectorLen(zcu); | ||
| 21225 | const dest_ty = try pt.vectorType(.{ .child = .u1_type, .len = len }); | ||
| 21226 | if (val.isUndef(zcu)) return pt.undefRef(dest_ty); | 21224 | if (val.isUndef(zcu)) return pt.undefRef(dest_ty); |
| 21227 | const new_elems = try sema.arena.alloc(InternPool.Index, len); | 21225 | const new_elems = try sema.arena.alloc(InternPool.Index, len); |
| 21228 | for (new_elems, 0..) |*new_elem, i| { | 21226 | for (new_elems, 0..) |*new_elem, i| { |
| ... | @@ -21240,16 +21238,14 @@ fn zirIntFromBool(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError | ... | @@ -21240,16 +21238,14 @@ fn zirIntFromBool(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError |
| 21240 | .storage = .{ .elems = new_elems }, | 21238 | .storage = .{ .elems = new_elems }, |
| 21241 | } })); | 21239 | } })); |
| 21242 | } | 21240 | } |
| 21243 | if (!is_vector) { | 21241 | if (!is_vector or zcu.backendSupportsFeature(.all_vector_instructions)) { |
| 21244 | return block.addUnOp(.int_from_bool, operand); | 21242 | return block.addBitCast(dest_ty, operand); |
| 21245 | } | 21243 | } |
| 21246 | const len = operand_ty.vectorLen(zcu); | ||
| 21247 | const dest_ty = try pt.vectorType(.{ .child = .u1_type, .len = len }); | ||
| 21248 | const new_elems = try sema.arena.alloc(Air.Inst.Ref, len); | 21244 | const new_elems = try sema.arena.alloc(Air.Inst.Ref, len); |
| 21249 | for (new_elems, 0..) |*new_elem, i| { | 21245 | for (new_elems, 0..) |*new_elem, i| { |
| 21250 | const idx_ref = try pt.intRef(Type.usize, i); | 21246 | const idx_ref = try pt.intRef(Type.usize, i); |
| 21251 | const old_elem = try block.addBinOp(.array_elem_val, operand, idx_ref); | 21247 | const old_elem = try block.addBinOp(.array_elem_val, operand, idx_ref); |
| 21252 | new_elem.* = try block.addUnOp(.int_from_bool, old_elem); | 21248 | new_elem.* = try block.addBitCast(.u1, old_elem); |
| 21253 | } | 21249 | } |
| 21254 | return block.addAggregateInit(dest_ty, new_elems); | 21250 | return block.addAggregateInit(dest_ty, new_elems); |
| 21255 | } | 21251 | } |
| ... | @@ -22842,14 +22838,27 @@ fn zirIntFromFloat(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileErro | ... | @@ -22842,14 +22838,27 @@ fn zirIntFromFloat(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileErro |
| 22842 | .storage = .{ .repeated_elem = (try pt.intValue(dest_scalar_ty, 0)).toIntern() }, | 22838 | .storage = .{ .repeated_elem = (try pt.intValue(dest_scalar_ty, 0)).toIntern() }, |
| 22843 | } })); | 22839 | } })); |
| 22844 | } | 22840 | } |
| 22845 | if (!is_vector) { | 22841 | if (!is_vector or zcu.backendSupportsFeature(.all_vector_instructions)) { |
| 22846 | const result = try block.addTyOp(if (block.float_mode == .optimized) .int_from_float_optimized else .int_from_float, dest_ty, operand); | 22842 | const result = try block.addTyOp(if (block.float_mode == .optimized) .int_from_float_optimized else .int_from_float, dest_ty, operand); |
| 22847 | if (block.wantSafety()) { | 22843 | if (block.wantSafety()) { |
| 22848 | const back = try block.addTyOp(.float_from_int, operand_ty, result); | 22844 | const back = try block.addTyOp(.float_from_int, operand_ty, result); |
| 22849 | const diff = try block.addBinOp(.sub, operand, back); | 22845 | const diff = try block.addBinOp(if (block.float_mode == .optimized) .sub_optimized else .sub, operand, back); |
| 22850 | const ok_pos = try block.addBinOp(if (block.float_mode == .optimized) .cmp_lt_optimized else .cmp_lt, diff, Air.internedToRef((try pt.floatValue(operand_ty, 1.0)).toIntern())); | 22846 | const ok = if (is_vector) ok: { |
| 22851 | const ok_neg = try block.addBinOp(if (block.float_mode == .optimized) .cmp_gt_optimized else .cmp_gt, diff, Air.internedToRef((try pt.floatValue(operand_ty, -1.0)).toIntern())); | 22847 | const ok_pos = try block.addCmpVector(diff, Air.internedToRef((try sema.splat(operand_ty, try pt.floatValue(operand_scalar_ty, 1.0))).toIntern()), .lt); |
| 22852 | const ok = try block.addBinOp(.bool_and, ok_pos, ok_neg); | 22848 | const ok_neg = try block.addCmpVector(diff, Air.internedToRef((try sema.splat(operand_ty, try pt.floatValue(operand_scalar_ty, -1.0))).toIntern()), .gt); |
| 22849 | const ok = try block.addBinOp(.bit_and, ok_pos, ok_neg); | ||
| 22850 | break :ok try block.addInst(.{ | ||
| 22851 | .tag = .reduce, | ||
| 22852 | .data = .{ .reduce = .{ | ||
| 22853 | .operand = ok, | ||
| 22854 | .operation = .And, | ||
| 22855 | } }, | ||
| 22856 | }); | ||
| 22857 | } else ok: { | ||
| 22858 | const ok_pos = try block.addBinOp(if (block.float_mode == .optimized) .cmp_lt_optimized else .cmp_lt, diff, Air.internedToRef((try pt.floatValue(operand_ty, 1.0)).toIntern())); | ||
| 22859 | const ok_neg = try block.addBinOp(if (block.float_mode == .optimized) .cmp_gt_optimized else .cmp_gt, diff, Air.internedToRef((try pt.floatValue(operand_ty, -1.0)).toIntern())); | ||
| 22860 | break :ok try block.addBinOp(.bool_and, ok_pos, ok_neg); | ||
| 22861 | }; | ||
| 22853 | try sema.addSafetyCheck(block, src, ok, .integer_part_out_of_bounds); | 22862 | try sema.addSafetyCheck(block, src, ok, .integer_part_out_of_bounds); |
| 22854 | } | 22863 | } |
| 22855 | return result; | 22864 | return result; |
| ... | @@ -22901,7 +22910,7 @@ fn zirFloatFromInt(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileErro | ... | @@ -22901,7 +22910,7 @@ fn zirFloatFromInt(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileErro |
| 22901 | } | 22910 | } |
| 22902 | 22911 | ||
| 22903 | try sema.requireRuntimeBlock(block, src, operand_src); | 22912 | try sema.requireRuntimeBlock(block, src, operand_src); |
| 22904 | if (!is_vector) { | 22913 | if (!is_vector or zcu.backendSupportsFeature(.all_vector_instructions)) { |
| 22905 | return block.addTyOp(.float_from_int, dest_ty, operand); | 22914 | return block.addTyOp(.float_from_int, dest_ty, operand); |
| 22906 | } | 22915 | } |
| 22907 | const len = operand_ty.vectorLen(zcu); | 22916 | const len = operand_ty.vectorLen(zcu); |
| ... | @@ -22980,17 +22989,37 @@ fn zirPtrFromInt(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError! | ... | @@ -22980,17 +22989,37 @@ fn zirPtrFromInt(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError! |
| 22980 | }); | 22989 | }); |
| 22981 | } | 22990 | } |
| 22982 | try sema.requireRuntimeBlock(block, src, operand_src); | 22991 | try sema.requireRuntimeBlock(block, src, operand_src); |
| 22983 | if (!is_vector) { | 22992 | if (!is_vector or zcu.backendSupportsFeature(.all_vector_instructions)) { |
| 22984 | if (block.wantSafety() and (try elem_ty.hasRuntimeBitsSema(pt) or elem_ty.zigTypeTag(zcu) == .@"fn")) { | 22993 | if (block.wantSafety() and (try elem_ty.hasRuntimeBitsSema(pt) or elem_ty.zigTypeTag(zcu) == .@"fn")) { |
| 22985 | if (!ptr_ty.isAllowzeroPtr(zcu)) { | 22994 | if (!ptr_ty.isAllowzeroPtr(zcu)) { |
| 22986 | const is_non_zero = try block.addBinOp(.cmp_neq, operand_coerced, .zero_usize); | 22995 | const is_non_zero = if (is_vector) all_non_zero: { |
| 22996 | const zero_usize = Air.internedToRef((try sema.splat(operand_ty, .zero_usize)).toIntern()); | ||
| 22997 | const is_non_zero = try block.addCmpVector(operand_coerced, zero_usize, .neq); | ||
| 22998 | break :all_non_zero try block.addInst(.{ | ||
| 22999 | .tag = .reduce, | ||
| 23000 | .data = .{ .reduce = .{ | ||
| 23001 | .operand = is_non_zero, | ||
| 23002 | .operation = .And, | ||
| 23003 | } }, | ||
| 23004 | }); | ||
| 23005 | } else try block.addBinOp(.cmp_neq, operand_coerced, .zero_usize); | ||
| 22987 | try sema.addSafetyCheck(block, src, is_non_zero, .cast_to_null); | 23006 | try sema.addSafetyCheck(block, src, is_non_zero, .cast_to_null); |
| 22988 | } | 23007 | } |
| 22989 | if (ptr_align.compare(.gt, .@"1")) { | 23008 | if (ptr_align.compare(.gt, .@"1")) { |
| 22990 | const align_bytes_minus_1 = ptr_align.toByteUnits().? - 1; | 23009 | const align_bytes_minus_1 = ptr_align.toByteUnits().? - 1; |
| 22991 | const align_minus_1 = Air.internedToRef((try pt.intValue(Type.usize, align_bytes_minus_1)).toIntern()); | 23010 | const align_minus_1 = Air.internedToRef((try sema.splat(operand_ty, try pt.intValue(Type.usize, align_bytes_minus_1))).toIntern()); |
| 22992 | const remainder = try block.addBinOp(.bit_and, operand_coerced, align_minus_1); | 23011 | const remainder = try block.addBinOp(.bit_and, operand_coerced, align_minus_1); |
| 22993 | const is_aligned = try block.addBinOp(.cmp_eq, remainder, .zero_usize); | 23012 | const is_aligned = if (is_vector) all_aligned: { |
| 23013 | const splat_zero_usize = Air.internedToRef((try sema.splat(operand_ty, .zero_usize)).toIntern()); | ||
| 23014 | const is_aligned = try block.addCmpVector(remainder, splat_zero_usize, .eq); | ||
| 23015 | break :all_aligned try block.addInst(.{ | ||
| 23016 | .tag = .reduce, | ||
| 23017 | .data = .{ .reduce = .{ | ||
| 23018 | .operand = is_aligned, | ||
| 23019 | .operation = .And, | ||
| 23020 | } }, | ||
| 23021 | }); | ||
| 23022 | } else try block.addBinOp(.cmp_eq, remainder, .zero_usize); | ||
| 22994 | try sema.addSafetyCheck(block, src, is_aligned, .incorrect_alignment); | 23023 | try sema.addSafetyCheck(block, src, is_aligned, .incorrect_alignment); |
| 22995 | } | 23024 | } |
| 22996 | } | 23025 | } |
| ... | @@ -23543,7 +23572,11 @@ fn ptrCastFull( | ... | @@ -23543,7 +23572,11 @@ fn ptrCastFull( |
| 23543 | if (block.wantSafety() and operand_ty.ptrAllowsZero(zcu) and !dest_ty.ptrAllowsZero(zcu) and | 23572 | if (block.wantSafety() and operand_ty.ptrAllowsZero(zcu) and !dest_ty.ptrAllowsZero(zcu) and |
| 23544 | (try Type.fromInterned(dest_info.child).hasRuntimeBitsSema(pt) or Type.fromInterned(dest_info.child).zigTypeTag(zcu) == .@"fn")) | 23573 | (try Type.fromInterned(dest_info.child).hasRuntimeBitsSema(pt) or Type.fromInterned(dest_info.child).zigTypeTag(zcu) == .@"fn")) |
| 23545 | { | 23574 | { |
| 23546 | const ptr_int = try block.addUnOp(.int_from_ptr, ptr); | 23575 | const actual_ptr = if (src_info.flags.size == .slice) |
| 23576 | try sema.analyzeSlicePtr(block, src, ptr, operand_ty) | ||
| 23577 | else | ||
| 23578 | ptr; | ||
| 23579 | const ptr_int = try block.addBitCast(.usize, actual_ptr); | ||
| 23547 | const is_non_zero = try block.addBinOp(.cmp_neq, ptr_int, .zero_usize); | 23580 | const is_non_zero = try block.addBinOp(.cmp_neq, ptr_int, .zero_usize); |
| 23548 | const ok = if (src_info.flags.size == .slice and dest_info.flags.size == .slice) ok: { | 23581 | const ok = if (src_info.flags.size == .slice and dest_info.flags.size == .slice) ok: { |
| 23549 | const len = try sema.analyzeSliceLen(block, operand_src, ptr); | 23582 | const len = try sema.analyzeSliceLen(block, operand_src, ptr); |
| ... | @@ -23559,7 +23592,11 @@ fn ptrCastFull( | ... | @@ -23559,7 +23592,11 @@ fn ptrCastFull( |
| 23559 | { | 23592 | { |
| 23560 | const align_bytes_minus_1 = dest_align.toByteUnits().? - 1; | 23593 | const align_bytes_minus_1 = dest_align.toByteUnits().? - 1; |
| 23561 | const align_minus_1 = Air.internedToRef((try pt.intValue(Type.usize, align_bytes_minus_1)).toIntern()); | 23594 | const align_minus_1 = Air.internedToRef((try pt.intValue(Type.usize, align_bytes_minus_1)).toIntern()); |
| 23562 | const ptr_int = try block.addUnOp(.int_from_ptr, ptr); | 23595 | const actual_ptr = if (src_info.flags.size == .slice) |
| 23596 | try sema.analyzeSlicePtr(block, src, ptr, operand_ty) | ||
| 23597 | else | ||
| 23598 | ptr; | ||
| 23599 | const ptr_int = try block.addBitCast(.usize, actual_ptr); | ||
| 23563 | const remainder = try block.addBinOp(.bit_and, ptr_int, align_minus_1); | 23600 | const remainder = try block.addBinOp(.bit_and, ptr_int, align_minus_1); |
| 23564 | const is_aligned = try block.addBinOp(.cmp_eq, remainder, .zero_usize); | 23601 | const is_aligned = try block.addBinOp(.cmp_eq, remainder, .zero_usize); |
| 23565 | const ok = if (src_info.flags.size == .slice and dest_info.flags.size == .slice) ok: { | 23602 | const ok = if (src_info.flags.size == .slice and dest_info.flags.size == .slice) ok: { |
| ... | @@ -31407,7 +31444,7 @@ fn coerceCompatiblePtrs( | ... | @@ -31407,7 +31444,7 @@ fn coerceCompatiblePtrs( |
| 31407 | try sema.analyzeSlicePtr(block, inst_src, inst, inst_ty) | 31444 | try sema.analyzeSlicePtr(block, inst_src, inst, inst_ty) |
| 31408 | else | 31445 | else |
| 31409 | inst; | 31446 | inst; |
| 31410 | const ptr_int = try block.addUnOp(.int_from_ptr, actual_ptr); | 31447 | const ptr_int = try block.addBitCast(.usize, actual_ptr); |
| 31411 | const is_non_zero = try block.addBinOp(.cmp_neq, ptr_int, .zero_usize); | 31448 | const is_non_zero = try block.addBinOp(.cmp_neq, ptr_int, .zero_usize); |
| 31412 | const ok = if (inst_ty.isSlice(zcu)) ok: { | 31449 | const ok = if (inst_ty.isSlice(zcu)) ok: { |
| 31413 | const len = try sema.analyzeSliceLen(block, inst_src, inst); | 31450 | const len = try sema.analyzeSliceLen(block, inst_src, inst); |
| ... | @@ -36700,6 +36737,7 @@ pub fn typeHasOnePossibleValue(sema: *Sema, ty: Type) CompileError!?Value { | ... | @@ -36700,6 +36737,7 @@ pub fn typeHasOnePossibleValue(sema: *Sema, ty: Type) CompileError!?Value { |
| 36700 | .vector_4_u64_type, | 36737 | .vector_4_u64_type, |
| 36701 | .vector_4_f16_type, | 36738 | .vector_4_f16_type, |
| 36702 | .vector_8_f16_type, | 36739 | .vector_8_f16_type, |
| 36740 | .vector_2_f32_type, | ||
| 36703 | .vector_4_f32_type, | 36741 | .vector_4_f32_type, |
| 36704 | .vector_8_f32_type, | 36742 | .vector_8_f32_type, |
| 36705 | .vector_2_f64_type, | 36743 | .vector_2_f64_type, |
src/Type.zig+1| ... | @@ -4216,6 +4216,7 @@ pub const vector_2_u64: Type = .{ .ip_index = .vector_2_u64_type }; | ... | @@ -4216,6 +4216,7 @@ pub const vector_2_u64: Type = .{ .ip_index = .vector_2_u64_type }; |
| 4216 | pub const vector_4_u64: Type = .{ .ip_index = .vector_4_u64_type }; | 4216 | pub const vector_4_u64: Type = .{ .ip_index = .vector_4_u64_type }; |
| 4217 | pub const vector_4_f16: Type = .{ .ip_index = .vector_4_f16_type }; | 4217 | pub const vector_4_f16: Type = .{ .ip_index = .vector_4_f16_type }; |
| 4218 | pub const vector_8_f16: Type = .{ .ip_index = .vector_8_f16_type }; | 4218 | pub const vector_8_f16: Type = .{ .ip_index = .vector_8_f16_type }; |
| 4219 | pub const vector_2_f32: Type = .{ .ip_index = .vector_2_f32_type }; | ||
| 4219 | pub const vector_4_f32: Type = .{ .ip_index = .vector_4_f32_type }; | 4220 | pub const vector_4_f32: Type = .{ .ip_index = .vector_4_f32_type }; |
| 4220 | pub const vector_8_f32: Type = .{ .ip_index = .vector_8_f32_type }; | 4221 | pub const vector_8_f32: Type = .{ .ip_index = .vector_8_f32_type }; |
| 4221 | pub const vector_2_f64: Type = .{ .ip_index = .vector_2_f64_type }; | 4222 | pub const vector_2_f64: Type = .{ .ip_index = .vector_2_f64_type }; |
src/Zcu.zig+9| ... | @@ -3336,6 +3336,15 @@ pub const Feature = enum { | ... | @@ -3336,6 +3336,15 @@ pub const Feature = enum { |
| 3336 | safety_checked_instructions, | 3336 | safety_checked_instructions, |
| 3337 | /// If the backend supports running from another thread. | 3337 | /// If the backend supports running from another thread. |
| 3338 | separate_thread, | 3338 | separate_thread, |
| 3339 | /// If the backend supports the following AIR instructions with vector types: | ||
| 3340 | /// * `Air.Inst.Tag.bit_and` | ||
| 3341 | /// * `Air.Inst.Tag.bit_or` | ||
| 3342 | /// * `Air.Inst.Tag.bitcast` | ||
| 3343 | /// * `Air.Inst.Tag.float_from_int` | ||
| 3344 | /// * `Air.Inst.Tag.fptrunc` | ||
| 3345 | /// * `Air.Inst.Tag.int_from_float` | ||
| 3346 | /// If not supported, Sema will scalarize the operation. | ||
| 3347 | all_vector_instructions, | ||
| 3339 | }; | 3348 | }; |
| 3340 | 3349 | ||
| 3341 | pub fn backendSupportsFeature(zcu: *const Zcu, comptime feature: Feature) bool { | 3350 | pub fn backendSupportsFeature(zcu: *const Zcu, comptime feature: Feature) bool { |
src/arch/aarch64/CodeGen.zig-15| ... | @@ -734,7 +734,6 @@ fn genBody(self: *Self, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -734,7 +734,6 @@ fn genBody(self: *Self, body: []const Air.Inst.Index) InnerError!void { |
| 734 | .fpext => try self.airFpext(inst), | 734 | .fpext => try self.airFpext(inst), |
| 735 | .intcast => try self.airIntCast(inst), | 735 | .intcast => try self.airIntCast(inst), |
| 736 | .trunc => try self.airTrunc(inst), | 736 | .trunc => try self.airTrunc(inst), |
| 737 | .int_from_bool => try self.airIntFromBool(inst), | ||
| 738 | .is_non_null => try self.airIsNonNull(inst), | 737 | .is_non_null => try self.airIsNonNull(inst), |
| 739 | .is_non_null_ptr => try self.airIsNonNullPtr(inst), | 738 | .is_non_null_ptr => try self.airIsNonNullPtr(inst), |
| 740 | .is_null => try self.airIsNull(inst), | 739 | .is_null => try self.airIsNull(inst), |
| ... | @@ -746,7 +745,6 @@ fn genBody(self: *Self, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -746,7 +745,6 @@ fn genBody(self: *Self, body: []const Air.Inst.Index) InnerError!void { |
| 746 | .load => try self.airLoad(inst), | 745 | .load => try self.airLoad(inst), |
| 747 | .loop => try self.airLoop(inst), | 746 | .loop => try self.airLoop(inst), |
| 748 | .not => try self.airNot(inst), | 747 | .not => try self.airNot(inst), |
| 749 | .int_from_ptr => try self.airIntFromPtr(inst), | ||
| 750 | .ret => try self.airRet(inst), | 748 | .ret => try self.airRet(inst), |
| 751 | .ret_safe => try self.airRet(inst), // TODO | 749 | .ret_safe => try self.airRet(inst), // TODO |
| 752 | .ret_load => try self.airRetLoad(inst), | 750 | .ret_load => try self.airRetLoad(inst), |
| ... | @@ -1294,13 +1292,6 @@ fn airTrunc(self: *Self, inst: Air.Inst.Index) InnerError!void { | ... | @@ -1294,13 +1292,6 @@ fn airTrunc(self: *Self, inst: Air.Inst.Index) InnerError!void { |
| 1294 | return self.finishAir(inst, result, .{ ty_op.operand, .none, .none }); | 1292 | return self.finishAir(inst, result, .{ ty_op.operand, .none, .none }); |
| 1295 | } | 1293 | } |
| 1296 | 1294 | ||
| 1297 | fn airIntFromBool(self: *Self, inst: Air.Inst.Index) InnerError!void { | ||
| 1298 | const un_op = self.air.instructions.items(.data)[@intFromEnum(inst)].un_op; | ||
| 1299 | const operand = try self.resolveInst(un_op); | ||
| 1300 | const result: MCValue = if (self.liveness.isUnused(inst)) .dead else operand; | ||
| 1301 | return self.finishAir(inst, result, .{ un_op, .none, .none }); | ||
| 1302 | } | ||
| 1303 | |||
| 1304 | fn airNot(self: *Self, inst: Air.Inst.Index) InnerError!void { | 1295 | fn airNot(self: *Self, inst: Air.Inst.Index) InnerError!void { |
| 1305 | const ty_op = self.air.instructions.items(.data)[@intFromEnum(inst)].ty_op; | 1296 | const ty_op = self.air.instructions.items(.data)[@intFromEnum(inst)].ty_op; |
| 1306 | const pt = self.pt; | 1297 | const pt = self.pt; |
| ... | @@ -5906,12 +5897,6 @@ fn genSetStackArgument(self: *Self, ty: Type, stack_offset: u32, mcv: MCValue) I | ... | @@ -5906,12 +5897,6 @@ fn genSetStackArgument(self: *Self, ty: Type, stack_offset: u32, mcv: MCValue) I |
| 5906 | } | 5897 | } |
| 5907 | } | 5898 | } |
| 5908 | 5899 | ||
| 5909 | fn airIntFromPtr(self: *Self, inst: Air.Inst.Index) InnerError!void { | ||
| 5910 | const un_op = self.air.instructions.items(.data)[@intFromEnum(inst)].un_op; | ||
| 5911 | const result = try self.resolveInst(un_op); | ||
| 5912 | return self.finishAir(inst, result, .{ un_op, .none, .none }); | ||
| 5913 | } | ||
| 5914 | |||
| 5915 | fn airBitCast(self: *Self, inst: Air.Inst.Index) InnerError!void { | 5900 | fn airBitCast(self: *Self, inst: Air.Inst.Index) InnerError!void { |
| 5916 | const ty_op = self.air.instructions.items(.data)[@intFromEnum(inst)].ty_op; | 5901 | const ty_op = self.air.instructions.items(.data)[@intFromEnum(inst)].ty_op; |
| 5917 | const result = if (self.liveness.isUnused(inst)) .dead else result: { | 5902 | const result = if (self.liveness.isUnused(inst)) .dead else result: { |
src/arch/arm/CodeGen.zig-15| ... | @@ -723,7 +723,6 @@ fn genBody(self: *Self, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -723,7 +723,6 @@ fn genBody(self: *Self, body: []const Air.Inst.Index) InnerError!void { |
| 723 | .fpext => try self.airFpext(inst), | 723 | .fpext => try self.airFpext(inst), |
| 724 | .intcast => try self.airIntCast(inst), | 724 | .intcast => try self.airIntCast(inst), |
| 725 | .trunc => try self.airTrunc(inst), | 725 | .trunc => try self.airTrunc(inst), |
| 726 | .int_from_bool => try self.airIntFromBool(inst), | ||
| 727 | .is_non_null => try self.airIsNonNull(inst), | 726 | .is_non_null => try self.airIsNonNull(inst), |
| 728 | .is_non_null_ptr => try self.airIsNonNullPtr(inst), | 727 | .is_non_null_ptr => try self.airIsNonNullPtr(inst), |
| 729 | .is_null => try self.airIsNull(inst), | 728 | .is_null => try self.airIsNull(inst), |
| ... | @@ -735,7 +734,6 @@ fn genBody(self: *Self, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -735,7 +734,6 @@ fn genBody(self: *Self, body: []const Air.Inst.Index) InnerError!void { |
| 735 | .load => try self.airLoad(inst), | 734 | .load => try self.airLoad(inst), |
| 736 | .loop => try self.airLoop(inst), | 735 | .loop => try self.airLoop(inst), |
| 737 | .not => try self.airNot(inst), | 736 | .not => try self.airNot(inst), |
| 738 | .int_from_ptr => try self.airIntFromPtr(inst), | ||
| 739 | .ret => try self.airRet(inst), | 737 | .ret => try self.airRet(inst), |
| 740 | .ret_safe => try self.airRet(inst), // TODO | 738 | .ret_safe => try self.airRet(inst), // TODO |
| 741 | .ret_load => try self.airRetLoad(inst), | 739 | .ret_load => try self.airRetLoad(inst), |
| ... | @@ -1258,13 +1256,6 @@ fn airTrunc(self: *Self, inst: Air.Inst.Index) !void { | ... | @@ -1258,13 +1256,6 @@ fn airTrunc(self: *Self, inst: Air.Inst.Index) !void { |
| 1258 | return self.finishAir(inst, result, .{ ty_op.operand, .none, .none }); | 1256 | return self.finishAir(inst, result, .{ ty_op.operand, .none, .none }); |
| 1259 | } | 1257 | } |
| 1260 | 1258 | ||
| 1261 | fn airIntFromBool(self: *Self, inst: Air.Inst.Index) !void { | ||
| 1262 | const un_op = self.air.instructions.items(.data)[@intFromEnum(inst)].un_op; | ||
| 1263 | const operand = try self.resolveInst(un_op); | ||
| 1264 | const result: MCValue = if (self.liveness.isUnused(inst)) .dead else operand; | ||
| 1265 | return self.finishAir(inst, result, .{ un_op, .none, .none }); | ||
| 1266 | } | ||
| 1267 | |||
| 1268 | fn airNot(self: *Self, inst: Air.Inst.Index) !void { | 1259 | fn airNot(self: *Self, inst: Air.Inst.Index) !void { |
| 1269 | const ty_op = self.air.instructions.items(.data)[@intFromEnum(inst)].ty_op; | 1260 | const ty_op = self.air.instructions.items(.data)[@intFromEnum(inst)].ty_op; |
| 1270 | const pt = self.pt; | 1261 | const pt = self.pt; |
| ... | @@ -5874,12 +5865,6 @@ fn genSetStackArgument(self: *Self, ty: Type, stack_offset: u32, mcv: MCValue) I | ... | @@ -5874,12 +5865,6 @@ fn genSetStackArgument(self: *Self, ty: Type, stack_offset: u32, mcv: MCValue) I |
| 5874 | } | 5865 | } |
| 5875 | } | 5866 | } |
| 5876 | 5867 | ||
| 5877 | fn airIntFromPtr(self: *Self, inst: Air.Inst.Index) !void { | ||
| 5878 | const un_op = self.air.instructions.items(.data)[@intFromEnum(inst)].un_op; | ||
| 5879 | const result = try self.resolveInst(un_op); | ||
| 5880 | return self.finishAir(inst, result, .{ un_op, .none, .none }); | ||
| 5881 | } | ||
| 5882 | |||
| 5883 | fn airBitCast(self: *Self, inst: Air.Inst.Index) !void { | 5868 | fn airBitCast(self: *Self, inst: Air.Inst.Index) !void { |
| 5884 | const ty_op = self.air.instructions.items(.data)[@intFromEnum(inst)].ty_op; | 5869 | const ty_op = self.air.instructions.items(.data)[@intFromEnum(inst)].ty_op; |
| 5885 | const result = if (self.liveness.isUnused(inst)) .dead else result: { | 5870 | const result = if (self.liveness.isUnused(inst)) .dead else result: { |
src/arch/riscv64/CodeGen.zig+2-25| ... | @@ -1557,7 +1557,6 @@ fn genBody(func: *Func, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -1557,7 +1557,6 @@ fn genBody(func: *Func, body: []const Air.Inst.Index) InnerError!void { |
| 1557 | .fpext => try func.airFpext(inst), | 1557 | .fpext => try func.airFpext(inst), |
| 1558 | .intcast => try func.airIntCast(inst), | 1558 | .intcast => try func.airIntCast(inst), |
| 1559 | .trunc => try func.airTrunc(inst), | 1559 | .trunc => try func.airTrunc(inst), |
| 1560 | .int_from_bool => try func.airIntFromBool(inst), | ||
| 1561 | .is_non_null => try func.airIsNonNull(inst), | 1560 | .is_non_null => try func.airIsNonNull(inst), |
| 1562 | .is_non_null_ptr => try func.airIsNonNullPtr(inst), | 1561 | .is_non_null_ptr => try func.airIsNonNullPtr(inst), |
| 1563 | .is_null => try func.airIsNull(inst), | 1562 | .is_null => try func.airIsNull(inst), |
| ... | @@ -1569,7 +1568,6 @@ fn genBody(func: *Func, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -1569,7 +1568,6 @@ fn genBody(func: *Func, body: []const Air.Inst.Index) InnerError!void { |
| 1569 | .load => try func.airLoad(inst), | 1568 | .load => try func.airLoad(inst), |
| 1570 | .loop => try func.airLoop(inst), | 1569 | .loop => try func.airLoop(inst), |
| 1571 | .not => try func.airNot(inst), | 1570 | .not => try func.airNot(inst), |
| 1572 | .int_from_ptr => try func.airIntFromPtr(inst), | ||
| 1573 | .ret => try func.airRet(inst, false), | 1571 | .ret => try func.airRet(inst, false), |
| 1574 | .ret_safe => try func.airRet(inst, true), | 1572 | .ret_safe => try func.airRet(inst, true), |
| 1575 | .ret_load => try func.airRetLoad(inst), | 1573 | .ret_load => try func.airRetLoad(inst), |
| ... | @@ -2299,13 +2297,6 @@ fn airTrunc(func: *Func, inst: Air.Inst.Index) !void { | ... | @@ -2299,13 +2297,6 @@ fn airTrunc(func: *Func, inst: Air.Inst.Index) !void { |
| 2299 | return func.finishAir(inst, operand, .{ ty_op.operand, .none, .none }); | 2297 | return func.finishAir(inst, operand, .{ ty_op.operand, .none, .none }); |
| 2300 | } | 2298 | } |
| 2301 | 2299 | ||
| 2302 | fn airIntFromBool(func: *Func, inst: Air.Inst.Index) !void { | ||
| 2303 | const un_op = func.air.instructions.items(.data)[@intFromEnum(inst)].un_op; | ||
| 2304 | const operand = try func.resolveInst(un_op); | ||
| 2305 | const result: MCValue = if (func.liveness.isUnused(inst)) .unreach else operand; | ||
| 2306 | return func.finishAir(inst, result, .{ un_op, .none, .none }); | ||
| 2307 | } | ||
| 2308 | |||
| 2309 | fn airNot(func: *Func, inst: Air.Inst.Index) !void { | 2300 | fn airNot(func: *Func, inst: Air.Inst.Index) !void { |
| 2310 | const ty_op = func.air.instructions.items(.data)[@intFromEnum(inst)].ty_op; | 2301 | const ty_op = func.air.instructions.items(.data)[@intFromEnum(inst)].ty_op; |
| 2311 | const result: MCValue = if (func.liveness.isUnused(inst)) .unreach else result: { | 2302 | const result: MCValue = if (func.liveness.isUnused(inst)) .unreach else result: { |
| ... | @@ -7262,21 +7253,6 @@ fn genSetMem( | ... | @@ -7262,21 +7253,6 @@ fn genSetMem( |
| 7262 | } | 7253 | } |
| 7263 | } | 7254 | } |
| 7264 | 7255 | ||
| 7265 | fn airIntFromPtr(func: *Func, inst: Air.Inst.Index) !void { | ||
| 7266 | const un_op = func.air.instructions.items(.data)[@intFromEnum(inst)].un_op; | ||
| 7267 | const result = result: { | ||
| 7268 | const src_mcv = try func.resolveInst(un_op); | ||
| 7269 | const src_ty = func.typeOfIndex(inst); | ||
| 7270 | if (func.reuseOperand(inst, un_op, 0, src_mcv)) break :result src_mcv; | ||
| 7271 | |||
| 7272 | const dst_mcv = try func.allocRegOrMem(src_ty, inst, true); | ||
| 7273 | const dst_ty = func.typeOfIndex(inst); | ||
| 7274 | try func.genCopy(dst_ty, dst_mcv, src_mcv); | ||
| 7275 | break :result dst_mcv; | ||
| 7276 | }; | ||
| 7277 | return func.finishAir(inst, result, .{ un_op, .none, .none }); | ||
| 7278 | } | ||
| 7279 | |||
| 7280 | fn airBitCast(func: *Func, inst: Air.Inst.Index) !void { | 7256 | fn airBitCast(func: *Func, inst: Air.Inst.Index) !void { |
| 7281 | const pt = func.pt; | 7257 | const pt = func.pt; |
| 7282 | const zcu = pt.zcu; | 7258 | const zcu = pt.zcu; |
| ... | @@ -7285,8 +7261,9 @@ fn airBitCast(func: *Func, inst: Air.Inst.Index) !void { | ... | @@ -7285,8 +7261,9 @@ fn airBitCast(func: *Func, inst: Air.Inst.Index) !void { |
| 7285 | const result = if (func.liveness.isUnused(inst)) .unreach else result: { | 7261 | const result = if (func.liveness.isUnused(inst)) .unreach else result: { |
| 7286 | const src_mcv = try func.resolveInst(ty_op.operand); | 7262 | const src_mcv = try func.resolveInst(ty_op.operand); |
| 7287 | 7263 | ||
| 7288 | const dst_ty = func.typeOfIndex(inst); | ||
| 7289 | const src_ty = func.typeOf(ty_op.operand); | 7264 | const src_ty = func.typeOf(ty_op.operand); |
| 7265 | if (src_ty.toIntern() == .bool_type) break :result src_mcv; | ||
| 7266 | const dst_ty = func.typeOfIndex(inst); | ||
| 7290 | 7267 | ||
| 7291 | const src_lock = if (src_mcv.getReg()) |reg| func.register_manager.lockReg(reg) else null; | 7268 | const src_lock = if (src_mcv.getReg()) |reg| func.register_manager.lockReg(reg) else null; |
| 7292 | defer if (src_lock) |lock| func.register_manager.unlockReg(lock); | 7269 | defer if (src_lock) |lock| func.register_manager.unlockReg(lock); |
src/arch/sparc64/CodeGen.zig-15| ... | @@ -577,7 +577,6 @@ fn genBody(self: *Self, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -577,7 +577,6 @@ fn genBody(self: *Self, body: []const Air.Inst.Index) InnerError!void { |
| 577 | .fpext => @panic("TODO try self.airFpext(inst)"), | 577 | .fpext => @panic("TODO try self.airFpext(inst)"), |
| 578 | .intcast => try self.airIntCast(inst), | 578 | .intcast => try self.airIntCast(inst), |
| 579 | .trunc => try self.airTrunc(inst), | 579 | .trunc => try self.airTrunc(inst), |
| 580 | .int_from_bool => try self.airIntFromBool(inst), | ||
| 581 | .is_non_null => try self.airIsNonNull(inst), | 580 | .is_non_null => try self.airIsNonNull(inst), |
| 582 | .is_non_null_ptr => @panic("TODO try self.airIsNonNullPtr(inst)"), | 581 | .is_non_null_ptr => @panic("TODO try self.airIsNonNullPtr(inst)"), |
| 583 | .is_null => try self.airIsNull(inst), | 582 | .is_null => try self.airIsNull(inst), |
| ... | @@ -589,7 +588,6 @@ fn genBody(self: *Self, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -589,7 +588,6 @@ fn genBody(self: *Self, body: []const Air.Inst.Index) InnerError!void { |
| 589 | .load => try self.airLoad(inst), | 588 | .load => try self.airLoad(inst), |
| 590 | .loop => try self.airLoop(inst), | 589 | .loop => try self.airLoop(inst), |
| 591 | .not => try self.airNot(inst), | 590 | .not => try self.airNot(inst), |
| 592 | .int_from_ptr => try self.airIntFromPtr(inst), | ||
| 593 | .ret => try self.airRet(inst), | 591 | .ret => try self.airRet(inst), |
| 594 | .ret_safe => try self.airRet(inst), // TODO | 592 | .ret_safe => try self.airRet(inst), // TODO |
| 595 | .ret_load => try self.airRetLoad(inst), | 593 | .ret_load => try self.airRetLoad(inst), |
| ... | @@ -1077,13 +1075,6 @@ fn airBinOp(self: *Self, inst: Air.Inst.Index, tag: Air.Inst.Tag) !void { | ... | @@ -1077,13 +1075,6 @@ fn airBinOp(self: *Self, inst: Air.Inst.Index, tag: Air.Inst.Tag) !void { |
| 1077 | return self.finishAir(inst, result, .{ bin_op.lhs, bin_op.rhs, .none }); | 1075 | return self.finishAir(inst, result, .{ bin_op.lhs, bin_op.rhs, .none }); |
| 1078 | } | 1076 | } |
| 1079 | 1077 | ||
| 1080 | fn airIntFromBool(self: *Self, inst: Air.Inst.Index) !void { | ||
| 1081 | const un_op = self.air.instructions.items(.data)[@intFromEnum(inst)].un_op; | ||
| 1082 | const operand = try self.resolveInst(un_op); | ||
| 1083 | const result: MCValue = if (self.liveness.isUnused(inst)) .dead else operand; | ||
| 1084 | return self.finishAir(inst, result, .{ un_op, .none, .none }); | ||
| 1085 | } | ||
| 1086 | |||
| 1087 | fn airPtrArithmetic(self: *Self, inst: Air.Inst.Index, tag: Air.Inst.Tag) !void { | 1078 | fn airPtrArithmetic(self: *Self, inst: Air.Inst.Index, tag: Air.Inst.Tag) !void { |
| 1088 | const ty_pl = self.air.instructions.items(.data)[@intFromEnum(inst)].ty_pl; | 1079 | const ty_pl = self.air.instructions.items(.data)[@intFromEnum(inst)].ty_pl; |
| 1089 | const bin_op = self.air.extraData(Air.Bin, ty_pl.payload).data; | 1080 | const bin_op = self.air.extraData(Air.Bin, ty_pl.payload).data; |
| ... | @@ -2230,12 +2221,6 @@ fn airPtrSlicePtrPtr(self: *Self, inst: Air.Inst.Index) !void { | ... | @@ -2230,12 +2221,6 @@ fn airPtrSlicePtrPtr(self: *Self, inst: Air.Inst.Index) !void { |
| 2230 | return self.finishAir(inst, result, .{ ty_op.operand, .none, .none }); | 2221 | return self.finishAir(inst, result, .{ ty_op.operand, .none, .none }); |
| 2231 | } | 2222 | } |
| 2232 | 2223 | ||
| 2233 | fn airIntFromPtr(self: *Self, inst: Air.Inst.Index) !void { | ||
| 2234 | const un_op = self.air.instructions.items(.data)[@intFromEnum(inst)].un_op; | ||
| 2235 | const result = try self.resolveInst(un_op); | ||
| 2236 | return self.finishAir(inst, result, .{ un_op, .none, .none }); | ||
| 2237 | } | ||
| 2238 | |||
| 2239 | fn airRem(self: *Self, inst: Air.Inst.Index) !void { | 2224 | fn airRem(self: *Self, inst: Air.Inst.Index) !void { |
| 2240 | const bin_op = self.air.instructions.items(.data)[@intFromEnum(inst)].bin_op; | 2225 | const bin_op = self.air.instructions.items(.data)[@intFromEnum(inst)].bin_op; |
| 2241 | const lhs = try self.resolveInst(bin_op.lhs); | 2226 | const lhs = try self.resolveInst(bin_op.lhs); |
src/arch/wasm/CodeGen.zig+5-26| ... | @@ -1926,7 +1926,6 @@ fn genInst(cg: *CodeGen, inst: Air.Inst.Index) InnerError!void { | ... | @@ -1926,7 +1926,6 @@ fn genInst(cg: *CodeGen, inst: Air.Inst.Index) InnerError!void { |
| 1926 | .br => cg.airBr(inst), | 1926 | .br => cg.airBr(inst), |
| 1927 | .repeat => cg.airRepeat(inst), | 1927 | .repeat => cg.airRepeat(inst), |
| 1928 | .switch_dispatch => return cg.fail("TODO implement `switch_dispatch`", .{}), | 1928 | .switch_dispatch => return cg.fail("TODO implement `switch_dispatch`", .{}), |
| 1929 | .int_from_bool => cg.airIntFromBool(inst), | ||
| 1930 | .cond_br => cg.airCondBr(inst), | 1929 | .cond_br => cg.airCondBr(inst), |
| 1931 | .intcast => cg.airIntcast(inst), | 1930 | .intcast => cg.airIntcast(inst), |
| 1932 | .fptrunc => cg.airFptrunc(inst), | 1931 | .fptrunc => cg.airFptrunc(inst), |
| ... | @@ -1972,7 +1971,6 @@ fn genInst(cg: *CodeGen, inst: Air.Inst.Index) InnerError!void { | ... | @@ -1972,7 +1971,6 @@ fn genInst(cg: *CodeGen, inst: Air.Inst.Index) InnerError!void { |
| 1972 | .ptr_sub => cg.airPtrBinOp(inst, .sub), | 1971 | .ptr_sub => cg.airPtrBinOp(inst, .sub), |
| 1973 | .ptr_elem_ptr => cg.airPtrElemPtr(inst), | 1972 | .ptr_elem_ptr => cg.airPtrElemPtr(inst), |
| 1974 | .ptr_elem_val => cg.airPtrElemVal(inst), | 1973 | .ptr_elem_val => cg.airPtrElemVal(inst), |
| 1975 | .int_from_ptr => cg.airIntFromPtr(inst), | ||
| 1976 | .ret => cg.airRet(inst), | 1974 | .ret => cg.airRet(inst), |
| 1977 | .ret_safe => cg.airRet(inst), // TODO | 1975 | .ret_safe => cg.airRet(inst), // TODO |
| 1978 | .ret_ptr => cg.airRetPtr(inst), | 1976 | .ret_ptr => cg.airRetPtr(inst), |
| ... | @@ -3777,7 +3775,11 @@ fn airBitcast(cg: *CodeGen, inst: Air.Inst.Index) InnerError!void { | ... | @@ -3777,7 +3775,11 @@ fn airBitcast(cg: *CodeGen, inst: Air.Inst.Index) InnerError!void { |
| 3777 | break :result try cg.wrapOperand(operand, wanted_ty); | 3775 | break :result try cg.wrapOperand(operand, wanted_ty); |
| 3778 | } | 3776 | } |
| 3779 | 3777 | ||
| 3780 | break :result cg.reuseOperand(ty_op.operand, operand); | 3778 | break :result switch (operand) { |
| 3779 | // for stack offset, return a pointer to this offset. | ||
| 3780 | .stack_offset => try cg.buildPointerOffset(operand, 0, .new), | ||
| 3781 | else => cg.reuseOperand(ty_op.operand, operand), | ||
| 3782 | }; | ||
| 3781 | }; | 3783 | }; |
| 3782 | return cg.finishAir(inst, result, &.{ty_op.operand}); | 3784 | return cg.finishAir(inst, result, &.{ty_op.operand}); |
| 3783 | } | 3785 | } |
| ... | @@ -4637,14 +4639,6 @@ fn trunc(cg: *CodeGen, operand: WValue, wanted_ty: Type, given_ty: Type) InnerEr | ... | @@ -4637,14 +4639,6 @@ fn trunc(cg: *CodeGen, operand: WValue, wanted_ty: Type, given_ty: Type) InnerEr |
| 4637 | return result; | 4639 | return result; |
| 4638 | } | 4640 | } |
| 4639 | 4641 | ||
| 4640 | fn airIntFromBool(cg: *CodeGen, inst: Air.Inst.Index) InnerError!void { | ||
| 4641 | const un_op = cg.air.instructions.items(.data)[@intFromEnum(inst)].un_op; | ||
| 4642 | const operand = try cg.resolveInst(un_op); | ||
| 4643 | const result = cg.reuseOperand(un_op, operand); | ||
| 4644 | |||
| 4645 | return cg.finishAir(inst, result, &.{un_op}); | ||
| 4646 | } | ||
| 4647 | |||
| 4648 | fn airArrayToSlice(cg: *CodeGen, inst: Air.Inst.Index) InnerError!void { | 4642 | fn airArrayToSlice(cg: *CodeGen, inst: Air.Inst.Index) InnerError!void { |
| 4649 | const zcu = cg.pt.zcu; | 4643 | const zcu = cg.pt.zcu; |
| 4650 | const ty_op = cg.air.instructions.items(.data)[@intFromEnum(inst)].ty_op; | 4644 | const ty_op = cg.air.instructions.items(.data)[@intFromEnum(inst)].ty_op; |
| ... | @@ -4668,21 +4662,6 @@ fn airArrayToSlice(cg: *CodeGen, inst: Air.Inst.Index) InnerError!void { | ... | @@ -4668,21 +4662,6 @@ fn airArrayToSlice(cg: *CodeGen, inst: Air.Inst.Index) InnerError!void { |
| 4668 | return cg.finishAir(inst, slice_local, &.{ty_op.operand}); | 4662 | return cg.finishAir(inst, slice_local, &.{ty_op.operand}); |
| 4669 | } | 4663 | } |
| 4670 | 4664 | ||
| 4671 | fn airIntFromPtr(cg: *CodeGen, inst: Air.Inst.Index) InnerError!void { | ||
| 4672 | const zcu = cg.pt.zcu; | ||
| 4673 | const un_op = cg.air.instructions.items(.data)[@intFromEnum(inst)].un_op; | ||
| 4674 | const operand = try cg.resolveInst(un_op); | ||
| 4675 | const ptr_ty = cg.typeOf(un_op); | ||
| 4676 | const result = if (ptr_ty.isSlice(zcu)) | ||
| 4677 | try cg.slicePtr(operand) | ||
| 4678 | else switch (operand) { | ||
| 4679 | // for stack offset, return a pointer to this offset. | ||
| 4680 | .stack_offset => try cg.buildPointerOffset(operand, 0, .new), | ||
| 4681 | else => cg.reuseOperand(un_op, operand), | ||
| 4682 | }; | ||
| 4683 | return cg.finishAir(inst, result, &.{un_op}); | ||
| 4684 | } | ||
| 4685 | |||
| 4686 | fn airPtrElemVal(cg: *CodeGen, inst: Air.Inst.Index) InnerError!void { | 4665 | fn airPtrElemVal(cg: *CodeGen, inst: Air.Inst.Index) InnerError!void { |
| 4687 | const zcu = cg.pt.zcu; | 4666 | const zcu = cg.pt.zcu; |
| 4688 | const bin_op = cg.air.instructions.items(.data)[@intFromEnum(inst)].bin_op; | 4667 | const bin_op = cg.air.instructions.items(.data)[@intFromEnum(inst)].bin_op; |
src/arch/x86_64/CodeGen.zig+7783-837| ... | @@ -1339,7 +1339,7 @@ fn addExtraAssumeCapacity(self: *CodeGen, extra: anytype) u32 { | ... | @@ -1339,7 +1339,7 @@ fn addExtraAssumeCapacity(self: *CodeGen, extra: anytype) u32 { |
| 1339 | self.mir_extra.appendAssumeCapacity(switch (field.type) { | 1339 | self.mir_extra.appendAssumeCapacity(switch (field.type) { |
| 1340 | u32 => @field(extra, field.name), | 1340 | u32 => @field(extra, field.name), |
| 1341 | i32, Mir.Memory.Info => @bitCast(@field(extra, field.name)), | 1341 | i32, Mir.Memory.Info => @bitCast(@field(extra, field.name)), |
| 1342 | bits.FrameIndex => @intFromEnum(@field(extra, field.name)), | 1342 | FrameIndex => @intFromEnum(@field(extra, field.name)), |
| 1343 | else => @compileError("bad field type: " ++ field.name ++ ": " ++ @typeName(field.type)), | 1343 | else => @compileError("bad field type: " ++ field.name ++ ": " ++ @typeName(field.type)), |
| 1344 | }); | 1344 | }); |
| 1345 | } | 1345 | } |
| ... | @@ -2414,7 +2414,7 @@ fn genBodyBlock(self: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -2414,7 +2414,7 @@ fn genBodyBlock(self: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 2414 | } | 2414 | } |
| 2415 | 2415 | ||
| 2416 | fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | 2416 | fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 2417 | @setEvalBranchQuota(3_900); | 2417 | @setEvalBranchQuota(4_500); |
| 2418 | const pt = cg.pt; | 2418 | const pt = cg.pt; |
| 2419 | const zcu = pt.zcu; | 2419 | const zcu = pt.zcu; |
| 2420 | const ip = &zcu.intern_pool; | 2420 | const ip = &zcu.intern_pool; |
| ... | @@ -2499,9 +2499,6 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -2499,9 +2499,6 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 2499 | .cmp_lt_errors_len => try cg.airCmpLtErrorsLen(inst), | 2499 | .cmp_lt_errors_len => try cg.airCmpLtErrorsLen(inst), |
| 2500 | 2500 | ||
| 2501 | .bitcast => try cg.airBitCast(inst), | 2501 | .bitcast => try cg.airBitCast(inst), |
| 2502 | .fptrunc => try cg.airFptrunc(inst), | ||
| 2503 | .fpext => try cg.airFpext(inst), | ||
| 2504 | .intcast => try cg.airIntCast(inst), | ||
| 2505 | .trunc => try cg.airTrunc(inst), | 2502 | .trunc => try cg.airTrunc(inst), |
| 2506 | .is_non_null => try cg.airIsNonNull(inst), | 2503 | .is_non_null => try cg.airIsNonNull(inst), |
| 2507 | .is_null => try cg.airIsNull(inst), | 2504 | .is_null => try cg.airIsNull(inst), |
| ... | @@ -2591,7 +2588,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -2591,7 +2588,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 2591 | }, | 2588 | }, |
| 2592 | .dst_temps = .{.{ .rc = .general_purpose }}, | 2589 | .dst_temps = .{.{ .rc = .general_purpose }}, |
| 2593 | .each = .{ .once = &.{ | 2590 | .each = .{ .once = &.{ |
| 2594 | .{ ._, ._, .lea, .dst0p, .leaa(.none, .src0, .add_src0_elem_size_times_src1), ._, ._ }, | 2591 | .{ ._, ._, .lea, .dst0p, .leaa(.src0, .add_src0_elem_size_times_src1), ._, ._ }, |
| 2595 | } }, | 2592 | } }, |
| 2596 | }, .{ | 2593 | }, .{ |
| 2597 | .dst_constraints = .{.{ .elem_size_is = 1 }}, | 2594 | .dst_constraints = .{.{ .elem_size_is = 1 }}, |
| ... | @@ -2600,7 +2597,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -2600,7 +2597,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 2600 | }, | 2597 | }, |
| 2601 | .dst_temps = .{.{ .rc = .general_purpose }}, | 2598 | .dst_temps = .{.{ .rc = .general_purpose }}, |
| 2602 | .each = .{ .once = &.{ | 2599 | .each = .{ .once = &.{ |
| 2603 | .{ ._, ._, .lea, .dst0p, .leai(.none, .src0, .src1), ._, ._ }, | 2600 | .{ ._, ._, .lea, .dst0p, .leai(.src0, .src1), ._, ._ }, |
| 2604 | } }, | 2601 | } }, |
| 2605 | }, .{ | 2602 | }, .{ |
| 2606 | .dst_constraints = .{.{ .elem_size_is = 2 }}, | 2603 | .dst_constraints = .{.{ .elem_size_is = 2 }}, |
| ... | @@ -2609,7 +2606,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -2609,7 +2606,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 2609 | }, | 2606 | }, |
| 2610 | .dst_temps = .{.{ .rc = .general_purpose }}, | 2607 | .dst_temps = .{.{ .rc = .general_purpose }}, |
| 2611 | .each = .{ .once = &.{ | 2608 | .each = .{ .once = &.{ |
| 2612 | .{ ._, ._, .lea, .dst0p, .leasi(.none, .src0, .@"2", .src1), ._, ._ }, | 2609 | .{ ._, ._, .lea, .dst0p, .leasi(.src0, .@"2", .src1), ._, ._ }, |
| 2613 | } }, | 2610 | } }, |
| 2614 | }, .{ | 2611 | }, .{ |
| 2615 | .dst_constraints = .{.{ .elem_size_is = 2 + 1 }}, | 2612 | .dst_constraints = .{.{ .elem_size_is = 2 + 1 }}, |
| ... | @@ -2618,8 +2615,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -2618,8 +2615,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 2618 | }, | 2615 | }, |
| 2619 | .dst_temps = .{.{ .rc = .general_purpose }}, | 2616 | .dst_temps = .{.{ .rc = .general_purpose }}, |
| 2620 | .each = .{ .once = &.{ | 2617 | .each = .{ .once = &.{ |
| 2621 | .{ ._, ._, .lea, .dst0p, .leasi(.none, .src1, .@"2", .src1), ._, ._ }, | 2618 | .{ ._, ._, .lea, .dst0p, .leasi(.src1, .@"2", .src1), ._, ._ }, |
| 2622 | .{ ._, ._, .lea, .dst0p, .leai(.none, .src0, .dst0), ._, ._ }, | 2619 | .{ ._, ._, .lea, .dst0p, .leai(.src0, .dst0), ._, ._ }, |
| 2623 | } }, | 2620 | } }, |
| 2624 | }, .{ | 2621 | }, .{ |
| 2625 | .dst_constraints = .{.{ .elem_size_is = 4 }}, | 2622 | .dst_constraints = .{.{ .elem_size_is = 4 }}, |
| ... | @@ -2628,7 +2625,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -2628,7 +2625,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 2628 | }, | 2625 | }, |
| 2629 | .dst_temps = .{.{ .rc = .general_purpose }}, | 2626 | .dst_temps = .{.{ .rc = .general_purpose }}, |
| 2630 | .each = .{ .once = &.{ | 2627 | .each = .{ .once = &.{ |
| 2631 | .{ ._, ._, .lea, .dst0p, .leasi(.none, .src0, .@"4", .src1), ._, ._ }, | 2628 | .{ ._, ._, .lea, .dst0p, .leasi(.src0, .@"4", .src1), ._, ._ }, |
| 2632 | } }, | 2629 | } }, |
| 2633 | }, .{ | 2630 | }, .{ |
| 2634 | .dst_constraints = .{.{ .elem_size_is = 4 + 1 }}, | 2631 | .dst_constraints = .{.{ .elem_size_is = 4 + 1 }}, |
| ... | @@ -2637,8 +2634,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -2637,8 +2634,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 2637 | }, | 2634 | }, |
| 2638 | .dst_temps = .{.{ .ref = .src1 }}, | 2635 | .dst_temps = .{.{ .ref = .src1 }}, |
| 2639 | .each = .{ .once = &.{ | 2636 | .each = .{ .once = &.{ |
| 2640 | .{ ._, ._, .lea, .dst0p, .leasi(.none, .src1, .@"4", .src1), ._, ._ }, | 2637 | .{ ._, ._, .lea, .dst0p, .leasi(.src1, .@"4", .src1), ._, ._ }, |
| 2641 | .{ ._, ._, .lea, .dst0p, .leai(.none, .src0, .dst0), ._, ._ }, | 2638 | .{ ._, ._, .lea, .dst0p, .leai(.src0, .dst0), ._, ._ }, |
| 2642 | } }, | 2639 | } }, |
| 2643 | }, .{ | 2640 | }, .{ |
| 2644 | .required_features = .{ .@"64bit", null, null, null }, | 2641 | .required_features = .{ .@"64bit", null, null, null }, |
| ... | @@ -2648,7 +2645,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -2648,7 +2645,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 2648 | }, | 2645 | }, |
| 2649 | .dst_temps = .{.{ .rc = .general_purpose }}, | 2646 | .dst_temps = .{.{ .rc = .general_purpose }}, |
| 2650 | .each = .{ .once = &.{ | 2647 | .each = .{ .once = &.{ |
| 2651 | .{ ._, ._, .lea, .dst0p, .leasi(.none, .src0, .@"8", .src1), ._, ._ }, | 2648 | .{ ._, ._, .lea, .dst0p, .leasi(.src0, .@"8", .src1), ._, ._ }, |
| 2652 | } }, | 2649 | } }, |
| 2653 | }, .{ | 2650 | }, .{ |
| 2654 | .required_features = .{ .@"64bit", null, null, null }, | 2651 | .required_features = .{ .@"64bit", null, null, null }, |
| ... | @@ -2658,8 +2655,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -2658,8 +2655,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 2658 | }, | 2655 | }, |
| 2659 | .dst_temps = .{.{ .ref = .src1 }}, | 2656 | .dst_temps = .{.{ .ref = .src1 }}, |
| 2660 | .each = .{ .once = &.{ | 2657 | .each = .{ .once = &.{ |
| 2661 | .{ ._, ._, .lea, .dst0p, .leasi(.none, .src1, .@"8", .src1), ._, ._ }, | 2658 | .{ ._, ._, .lea, .dst0p, .leasi(.src1, .@"8", .src1), ._, ._ }, |
| 2662 | .{ ._, ._, .lea, .dst0p, .leai(.none, .src0, .dst0), ._, ._ }, | 2659 | .{ ._, ._, .lea, .dst0p, .leai(.src0, .dst0), ._, ._ }, |
| 2663 | } }, | 2660 | } }, |
| 2664 | }, .{ | 2661 | }, .{ |
| 2665 | .dst_constraints = .{.po2_elem_size}, | 2662 | .dst_constraints = .{.po2_elem_size}, |
| ... | @@ -2670,7 +2667,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -2670,7 +2667,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 2670 | .clobbers = .{ .eflags = true }, | 2667 | .clobbers = .{ .eflags = true }, |
| 2671 | .each = .{ .once = &.{ | 2668 | .each = .{ .once = &.{ |
| 2672 | .{ ._, ._l, .sh, .src1p, .sa(.none, .add_log2_src0_elem_size), ._, ._ }, | 2669 | .{ ._, ._l, .sh, .src1p, .sa(.none, .add_log2_src0_elem_size), ._, ._ }, |
| 2673 | .{ ._, ._, .lea, .dst0p, .leai(.none, .src0, .src1), ._, ._ }, | 2670 | .{ ._, ._, .lea, .dst0p, .leai(.src0, .src1), ._, ._ }, |
| 2674 | } }, | 2671 | } }, |
| 2675 | }, .{ | 2672 | }, .{ |
| 2676 | .patterns = &.{ | 2673 | .patterns = &.{ |
| ... | @@ -2680,7 +2677,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -2680,7 +2677,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 2680 | .clobbers = .{ .eflags = true }, | 2677 | .clobbers = .{ .eflags = true }, |
| 2681 | .each = .{ .once = &.{ | 2678 | .each = .{ .once = &.{ |
| 2682 | .{ ._, .i_, .mul, .dst0p, .src1p, .sa(.none, .add_src0_elem_size), ._ }, | 2679 | .{ ._, .i_, .mul, .dst0p, .src1p, .sa(.none, .add_src0_elem_size), ._ }, |
| 2683 | .{ ._, ._, .lea, .dst0p, .leai(.none, .src0, .dst0), ._, ._ }, | 2680 | .{ ._, ._, .lea, .dst0p, .leai(.src0, .dst0), ._, ._ }, |
| 2684 | } }, | 2681 | } }, |
| 2685 | } }) catch |err| switch (err) { | 2682 | } }) catch |err| switch (err) { |
| 2686 | error.SelectFailed => return cg.fail("failed to select {s} {} {} {}", .{ | 2683 | error.SelectFailed => return cg.fail("failed to select {s} {} {} {}", .{ |
| ... | @@ -2707,7 +2704,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -2707,7 +2704,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 2707 | }, | 2704 | }, |
| 2708 | .dst_temps = .{.{ .rc = .general_purpose }}, | 2705 | .dst_temps = .{.{ .rc = .general_purpose }}, |
| 2709 | .each = .{ .once = &.{ | 2706 | .each = .{ .once = &.{ |
| 2710 | .{ ._, ._, .lea, .dst0p, .leaa(.none, .src0, .sub_src0_elem_size_times_src1), ._, ._ }, | 2707 | .{ ._, ._, .lea, .dst0p, .leaa(.src0, .sub_src0_elem_size_times_src1), ._, ._ }, |
| 2711 | } }, | 2708 | } }, |
| 2712 | }, .{ | 2709 | }, .{ |
| 2713 | .dst_constraints = .{.{ .elem_size_is = 1 }}, | 2710 | .dst_constraints = .{.{ .elem_size_is = 1 }}, |
| ... | @@ -2718,7 +2715,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -2718,7 +2715,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 2718 | .clobbers = .{ .eflags = true }, | 2715 | .clobbers = .{ .eflags = true }, |
| 2719 | .each = .{ .once = &.{ | 2716 | .each = .{ .once = &.{ |
| 2720 | .{ ._, ._, .neg, .src1p, ._, ._, ._ }, | 2717 | .{ ._, ._, .neg, .src1p, ._, ._, ._ }, |
| 2721 | .{ ._, ._, .lea, .dst0p, .leai(.none, .src0, .src1), ._, ._ }, | 2718 | .{ ._, ._, .lea, .dst0p, .leai(.src0, .src1), ._, ._ }, |
| 2722 | } }, | 2719 | } }, |
| 2723 | }, .{ | 2720 | }, .{ |
| 2724 | .dst_constraints = .{.{ .elem_size_is = 2 }}, | 2721 | .dst_constraints = .{.{ .elem_size_is = 2 }}, |
| ... | @@ -2729,7 +2726,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -2729,7 +2726,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 2729 | .clobbers = .{ .eflags = true }, | 2726 | .clobbers = .{ .eflags = true }, |
| 2730 | .each = .{ .once = &.{ | 2727 | .each = .{ .once = &.{ |
| 2731 | .{ ._, ._, .neg, .src1p, ._, ._, ._ }, | 2728 | .{ ._, ._, .neg, .src1p, ._, ._, ._ }, |
| 2732 | .{ ._, ._, .lea, .dst0p, .leasi(.none, .src0, .@"2", .src1), ._, ._ }, | 2729 | .{ ._, ._, .lea, .dst0p, .leasi(.src0, .@"2", .src1), ._, ._ }, |
| 2733 | } }, | 2730 | } }, |
| 2734 | }, .{ | 2731 | }, .{ |
| 2735 | .dst_constraints = .{.{ .elem_size_is = 2 + 1 }}, | 2732 | .dst_constraints = .{.{ .elem_size_is = 2 + 1 }}, |
| ... | @@ -2739,9 +2736,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -2739,9 +2736,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 2739 | .dst_temps = .{.{ .rc = .general_purpose }}, | 2736 | .dst_temps = .{.{ .rc = .general_purpose }}, |
| 2740 | .clobbers = .{ .eflags = true }, | 2737 | .clobbers = .{ .eflags = true }, |
| 2741 | .each = .{ .once = &.{ | 2738 | .each = .{ .once = &.{ |
| 2742 | .{ ._, ._, .lea, .dst0p, .leasi(.none, .src1, .@"2", .src1), ._, ._ }, | 2739 | .{ ._, ._, .lea, .dst0p, .leasi(.src1, .@"2", .src1), ._, ._ }, |
| 2743 | .{ ._, ._, .neg, .dst0p, ._, ._, ._ }, | 2740 | .{ ._, ._, .neg, .dst0p, ._, ._, ._ }, |
| 2744 | .{ ._, ._, .lea, .dst0p, .leai(.none, .src0, .dst0), ._, ._ }, | 2741 | .{ ._, ._, .lea, .dst0p, .leai(.src0, .dst0), ._, ._ }, |
| 2745 | } }, | 2742 | } }, |
| 2746 | }, .{ | 2743 | }, .{ |
| 2747 | .dst_constraints = .{.{ .elem_size_is = 4 }}, | 2744 | .dst_constraints = .{.{ .elem_size_is = 4 }}, |
| ... | @@ -2752,7 +2749,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -2752,7 +2749,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 2752 | .clobbers = .{ .eflags = true }, | 2749 | .clobbers = .{ .eflags = true }, |
| 2753 | .each = .{ .once = &.{ | 2750 | .each = .{ .once = &.{ |
| 2754 | .{ ._, ._, .neg, .src1p, ._, ._, ._ }, | 2751 | .{ ._, ._, .neg, .src1p, ._, ._, ._ }, |
| 2755 | .{ ._, ._, .lea, .dst0p, .leasi(.none, .src0, .@"4", .src1), ._, ._ }, | 2752 | .{ ._, ._, .lea, .dst0p, .leasi(.src0, .@"4", .src1), ._, ._ }, |
| 2756 | } }, | 2753 | } }, |
| 2757 | }, .{ | 2754 | }, .{ |
| 2758 | .dst_constraints = .{.{ .elem_size_is = 4 + 1 }}, | 2755 | .dst_constraints = .{.{ .elem_size_is = 4 + 1 }}, |
| ... | @@ -2762,9 +2759,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -2762,9 +2759,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 2762 | .dst_temps = .{.{ .rc = .general_purpose }}, | 2759 | .dst_temps = .{.{ .rc = .general_purpose }}, |
| 2763 | .clobbers = .{ .eflags = true }, | 2760 | .clobbers = .{ .eflags = true }, |
| 2764 | .each = .{ .once = &.{ | 2761 | .each = .{ .once = &.{ |
| 2765 | .{ ._, ._, .lea, .dst0p, .leasi(.none, .src1, .@"4", .src1), ._, ._ }, | 2762 | .{ ._, ._, .lea, .dst0p, .leasi(.src1, .@"4", .src1), ._, ._ }, |
| 2766 | .{ ._, ._, .neg, .dst0p, ._, ._, ._ }, | 2763 | .{ ._, ._, .neg, .dst0p, ._, ._, ._ }, |
| 2767 | .{ ._, ._, .lea, .dst0p, .leai(.none, .src0, .dst0), ._, ._ }, | 2764 | .{ ._, ._, .lea, .dst0p, .leai(.src0, .dst0), ._, ._ }, |
| 2768 | } }, | 2765 | } }, |
| 2769 | }, .{ | 2766 | }, .{ |
| 2770 | .required_features = .{ .@"64bit", null, null, null }, | 2767 | .required_features = .{ .@"64bit", null, null, null }, |
| ... | @@ -2776,7 +2773,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -2776,7 +2773,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 2776 | .clobbers = .{ .eflags = true }, | 2773 | .clobbers = .{ .eflags = true }, |
| 2777 | .each = .{ .once = &.{ | 2774 | .each = .{ .once = &.{ |
| 2778 | .{ ._, ._, .neg, .src1p, ._, ._, ._ }, | 2775 | .{ ._, ._, .neg, .src1p, ._, ._, ._ }, |
| 2779 | .{ ._, ._, .lea, .dst0p, .leasi(.none, .src0, .@"8", .src1), ._, ._ }, | 2776 | .{ ._, ._, .lea, .dst0p, .leasi(.src0, .@"8", .src1), ._, ._ }, |
| 2780 | } }, | 2777 | } }, |
| 2781 | }, .{ | 2778 | }, .{ |
| 2782 | .required_features = .{ .@"64bit", null, null, null }, | 2779 | .required_features = .{ .@"64bit", null, null, null }, |
| ... | @@ -2787,9 +2784,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -2787,9 +2784,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 2787 | .dst_temps = .{.{ .rc = .general_purpose }}, | 2784 | .dst_temps = .{.{ .rc = .general_purpose }}, |
| 2788 | .clobbers = .{ .eflags = true }, | 2785 | .clobbers = .{ .eflags = true }, |
| 2789 | .each = .{ .once = &.{ | 2786 | .each = .{ .once = &.{ |
| 2790 | .{ ._, ._, .lea, .dst0p, .leasi(.none, .src1, .@"8", .src1), ._, ._ }, | 2787 | .{ ._, ._, .lea, .dst0p, .leasi(.src1, .@"8", .src1), ._, ._ }, |
| 2791 | .{ ._, ._, .neg, .dst0p, ._, ._, ._ }, | 2788 | .{ ._, ._, .neg, .dst0p, ._, ._, ._ }, |
| 2792 | .{ ._, ._, .lea, .dst0p, .leai(.none, .src0, .dst0), ._, ._ }, | 2789 | .{ ._, ._, .lea, .dst0p, .leai(.src0, .dst0), ._, ._ }, |
| 2793 | } }, | 2790 | } }, |
| 2794 | }, .{ | 2791 | }, .{ |
| 2795 | .dst_constraints = .{.po2_elem_size}, | 2792 | .dst_constraints = .{.po2_elem_size}, |
| ... | @@ -2801,7 +2798,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -2801,7 +2798,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 2801 | .each = .{ .once = &.{ | 2798 | .each = .{ .once = &.{ |
| 2802 | .{ ._, ._l, .sa, .src1p, .sa(.none, .add_log2_src0_elem_size), ._, ._ }, | 2799 | .{ ._, ._l, .sa, .src1p, .sa(.none, .add_log2_src0_elem_size), ._, ._ }, |
| 2803 | .{ ._, ._, .neg, .src1p, ._, ._, ._ }, | 2800 | .{ ._, ._, .neg, .src1p, ._, ._, ._ }, |
| 2804 | .{ ._, ._, .lea, .dst0p, .leai(.none, .src0, .src1), ._, ._ }, | 2801 | .{ ._, ._, .lea, .dst0p, .leai(.src0, .src1), ._, ._ }, |
| 2805 | } }, | 2802 | } }, |
| 2806 | }, .{ | 2803 | }, .{ |
| 2807 | .patterns = &.{ | 2804 | .patterns = &.{ |
| ... | @@ -2811,7 +2808,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -2811,7 +2808,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 2811 | .clobbers = .{ .eflags = true }, | 2808 | .clobbers = .{ .eflags = true }, |
| 2812 | .each = .{ .once = &.{ | 2809 | .each = .{ .once = &.{ |
| 2813 | .{ ._, .i_, .mul, .dst0p, .src1p, .sa(.none, .sub_src0_elem_size), ._ }, | 2810 | .{ ._, .i_, .mul, .dst0p, .src1p, .sa(.none, .sub_src0_elem_size), ._ }, |
| 2814 | .{ ._, ._, .lea, .dst0p, .leai(.none, .src0, .dst0), ._, ._ }, | 2811 | .{ ._, ._, .lea, .dst0p, .leai(.src0, .dst0), ._, ._ }, |
| 2815 | } }, | 2812 | } }, |
| 2816 | } }) catch |err| switch (err) { | 2813 | } }) catch |err| switch (err) { |
| 2817 | error.SelectFailed => return cg.fail("failed to select {s} {} {} {}", .{ | 2814 | error.SelectFailed => return cg.fail("failed to select {s} {} {} {}", .{ |
| ... | @@ -4542,7 +4539,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -4542,7 +4539,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 4542 | .dst_temps = .{.{ .rc = .sse }}, | 4539 | .dst_temps = .{.{ .rc = .sse }}, |
| 4543 | .each = .{ .once = &.{ | 4540 | .each = .{ .once = &.{ |
| 4544 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, | 4541 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 4545 | .{ ._, ._dqa, .mov, .dst0x, .lea(.xword, .tmp0), ._, ._ }, | 4542 | .{ ._, ._dqa, .mov, .dst0x, .lea(.tmp0x), ._, ._ }, |
| 4546 | .{ ._, ._dqa, .mov, .tmp2x, .dst0x, ._, ._ }, | 4543 | .{ ._, ._dqa, .mov, .tmp2x, .dst0x, ._, ._ }, |
| 4547 | .{ ._, .p_, .xor, .dst0x, .src0x, ._, ._ }, | 4544 | .{ ._, .p_, .xor, .dst0x, .src0x, ._, ._ }, |
| 4548 | .{ ._, .p_, .xor, .tmp2x, .src1x, ._, ._ }, | 4545 | .{ ._, .p_, .xor, .tmp2x, .src1x, ._, ._ }, |
| ... | @@ -4680,7 +4677,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -4680,7 +4677,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 4680 | .clobbers = .{ .eflags = true }, | 4677 | .clobbers = .{ .eflags = true }, |
| 4681 | .each = .{ .once = &.{ | 4678 | .each = .{ .once = &.{ |
| 4682 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, | 4679 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 4683 | .{ ._, ._dqa, .mov, .tmp2x, .lea(.xword, .tmp0), ._, ._ }, | 4680 | .{ ._, ._dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ }, |
| 4684 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | 4681 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 4685 | .{ .@"0:", ._dqa, .mov, .tmp3x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, | 4682 | .{ .@"0:", ._dqa, .mov, .tmp3x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, |
| 4686 | .{ ._, ._dqa, .mov, .tmp4x, .memia(.src1x, .tmp0, .add_size), ._, ._ }, | 4683 | .{ ._, ._dqa, .mov, .tmp4x, .memia(.src1x, .tmp0, .add_size), ._, ._ }, |
| ... | @@ -4999,7 +4996,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -4999,7 +4996,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 4999 | .dst_temps = .{.{ .rc = .sse }}, | 4996 | .dst_temps = .{.{ .rc = .sse }}, |
| 5000 | .each = .{ .once = &.{ | 4997 | .each = .{ .once = &.{ |
| 5001 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, | 4998 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 5002 | .{ ._, .v_, .movddup, .tmp2x, .lea(.qword, .tmp0), ._, ._ }, | 4999 | .{ ._, .v_, .movddup, .tmp2x, .lea(.tmp0q), ._, ._ }, |
| 5003 | .{ ._, .vp_, .xor, .dst0x, .tmp2x, .src0x, ._ }, | 5000 | .{ ._, .vp_, .xor, .dst0x, .tmp2x, .src0x, ._ }, |
| 5004 | .{ ._, .vp_, .xor, .tmp2x, .tmp2x, .src1x, ._ }, | 5001 | .{ ._, .vp_, .xor, .tmp2x, .tmp2x, .src1x, ._ }, |
| 5005 | .{ ._, .vp_q, .cmpgt, .dst0x, .tmp2x, .dst0x, ._ }, | 5002 | .{ ._, .vp_q, .cmpgt, .dst0x, .tmp2x, .dst0x, ._ }, |
| ... | @@ -5030,7 +5027,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -5030,7 +5027,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 5030 | .dst_temps = .{.{ .ref = .src0 }}, | 5027 | .dst_temps = .{.{ .ref = .src0 }}, |
| 5031 | .each = .{ .once = &.{ | 5028 | .each = .{ .once = &.{ |
| 5032 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, | 5029 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 5033 | .{ ._, ._, .movddup, .tmp2x, .lea(.qword, .tmp0), ._, ._ }, | 5030 | .{ ._, ._, .movddup, .tmp2x, .lea(.tmp0q), ._, ._ }, |
| 5034 | .{ ._, ._dqa, .mov, .tmp3x, .tmp2x, ._, ._ }, | 5031 | .{ ._, ._dqa, .mov, .tmp3x, .tmp2x, ._, ._ }, |
| 5035 | .{ ._, .p_, .xor, .tmp2x, .src0x, ._, ._ }, | 5032 | .{ ._, .p_, .xor, .tmp2x, .src0x, ._, ._ }, |
| 5036 | .{ ._, .p_, .xor, .tmp3x, .src1x, ._, ._ }, | 5033 | .{ ._, .p_, .xor, .tmp3x, .src1x, ._, ._ }, |
| ... | @@ -5062,7 +5059,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -5062,7 +5059,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 5062 | .dst_temps = .{.{ .rc = .sse }}, | 5059 | .dst_temps = .{.{ .rc = .sse }}, |
| 5063 | .each = .{ .once = &.{ | 5060 | .each = .{ .once = &.{ |
| 5064 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, | 5061 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 5065 | .{ ._, .vp_q, .broadcast, .tmp2y, .lea(.qword, .tmp0), ._, ._ }, | 5062 | .{ ._, .vp_q, .broadcast, .tmp2y, .lea(.tmp0q), ._, ._ }, |
| 5066 | .{ ._, .vp_, .xor, .dst0y, .tmp2y, .src0y, ._ }, | 5063 | .{ ._, .vp_, .xor, .dst0y, .tmp2y, .src0y, ._ }, |
| 5067 | .{ ._, .vp_, .xor, .tmp2y, .tmp2y, .src1y, ._ }, | 5064 | .{ ._, .vp_, .xor, .tmp2y, .tmp2y, .src1y, ._ }, |
| 5068 | .{ ._, .vp_q, .cmpgt, .dst0y, .tmp2y, .dst0y, ._ }, | 5065 | .{ ._, .vp_q, .cmpgt, .dst0y, .tmp2y, .dst0y, ._ }, |
| ... | @@ -5092,7 +5089,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -5092,7 +5089,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 5092 | .clobbers = .{ .eflags = true }, | 5089 | .clobbers = .{ .eflags = true }, |
| 5093 | .each = .{ .once = &.{ | 5090 | .each = .{ .once = &.{ |
| 5094 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, | 5091 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 5095 | .{ ._, .vp_q, .broadcast, .tmp2y, .lea(.qword, .tmp0), ._, ._ }, | 5092 | .{ ._, .vp_q, .broadcast, .tmp2y, .lea(.tmp0q), ._, ._ }, |
| 5096 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | 5093 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 5097 | .{ .@"0:", .v_dqa, .mov, .tmp3y, .memia(.src0y, .tmp0, .add_size), ._, ._ }, | 5094 | .{ .@"0:", .v_dqa, .mov, .tmp3y, .memia(.src0y, .tmp0, .add_size), ._, ._ }, |
| 5098 | .{ ._, .v_dqa, .mov, .tmp4y, .memia(.src1y, .tmp0, .add_size), ._, ._ }, | 5095 | .{ ._, .v_dqa, .mov, .tmp4y, .memia(.src1y, .tmp0, .add_size), ._, ._ }, |
| ... | @@ -5128,7 +5125,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -5128,7 +5125,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 5128 | .clobbers = .{ .eflags = true }, | 5125 | .clobbers = .{ .eflags = true }, |
| 5129 | .each = .{ .once = &.{ | 5126 | .each = .{ .once = &.{ |
| 5130 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, | 5127 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 5131 | .{ ._, .v_, .movddup, .tmp2x, .lea(.qword, .tmp0), ._, ._ }, | 5128 | .{ ._, .v_, .movddup, .tmp2x, .lea(.tmp0q), ._, ._ }, |
| 5132 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | 5129 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 5133 | .{ .@"0:", .v_dqa, .mov, .tmp3x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, | 5130 | .{ .@"0:", .v_dqa, .mov, .tmp3x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, |
| 5134 | .{ ._, .v_dqa, .mov, .tmp4x, .memia(.src1x, .tmp0, .add_size), ._, ._ }, | 5131 | .{ ._, .v_dqa, .mov, .tmp4x, .memia(.src1x, .tmp0, .add_size), ._, ._ }, |
| ... | @@ -5164,7 +5161,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -5164,7 +5161,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 5164 | .clobbers = .{ .eflags = true }, | 5161 | .clobbers = .{ .eflags = true }, |
| 5165 | .each = .{ .once = &.{ | 5162 | .each = .{ .once = &.{ |
| 5166 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, | 5163 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 5167 | .{ ._, ._, .movddup, .tmp2x, .lea(.qword, .tmp0), ._, ._ }, | 5164 | .{ ._, ._, .movddup, .tmp2x, .lea(.tmp0q), ._, ._ }, |
| 5168 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | 5165 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 5169 | .{ .@"0:", ._dqa, .mov, .tmp5x, .tmp2x, ._, ._ }, | 5166 | .{ .@"0:", ._dqa, .mov, .tmp5x, .tmp2x, ._, ._ }, |
| 5170 | .{ ._, ._dqa, .mov, .tmp6x, .tmp2x, ._, ._ }, | 5167 | .{ ._, ._dqa, .mov, .tmp6x, .tmp2x, ._, ._ }, |
| ... | @@ -5266,7 +5263,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -5266,7 +5263,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 5266 | .{ ._, ._c, .cl, ._, ._, ._, ._ }, | 5263 | .{ ._, ._c, .cl, ._, ._, ._, ._ }, |
| 5267 | .{ .@"1:", ._, .mov, .tmp2q, .memia(.src0q, .tmp0, .add_size), ._, ._ }, | 5264 | .{ .@"1:", ._, .mov, .tmp2q, .memia(.src0q, .tmp0, .add_size), ._, ._ }, |
| 5268 | .{ ._, ._, .sbb, .tmp2q, .memia(.src1q, .tmp0, .add_size), ._, ._ }, | 5265 | .{ ._, ._, .sbb, .tmp2q, .memia(.src1q, .tmp0, .add_size), ._, ._ }, |
| 5269 | .{ ._, ._, .lea, .tmp0p, .lead(.none, .tmp0, 8), ._, ._ }, | 5266 | .{ ._, ._, .lea, .tmp0p, .lead(.tmp0, 8), ._, ._ }, |
| 5270 | .{ ._, ._c, .de, .tmp1d, ._, ._, ._ }, | 5267 | .{ ._, ._c, .de, .tmp1d, ._, ._, ._ }, |
| 5271 | .{ ._, ._nz, .j, .@"1b", ._, ._, ._ }, | 5268 | .{ ._, ._nz, .j, .@"1b", ._, ._, ._ }, |
| 5272 | .{ ._, ._, .mov, .tmp2q, .memia(.src0q, .tmp0, .add_size), ._, ._ }, | 5269 | .{ ._, ._, .mov, .tmp2q, .memia(.src0q, .tmp0, .add_size), ._, ._ }, |
| ... | @@ -5305,7 +5302,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -5305,7 +5302,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 5305 | .{ ._, ._c, .cl, ._, ._, ._, ._ }, | 5302 | .{ ._, ._c, .cl, ._, ._, ._, ._ }, |
| 5306 | .{ .@"1:", ._, .mov, .tmp2q, .memia(.src0q, .tmp0, .add_size), ._, ._ }, | 5303 | .{ .@"1:", ._, .mov, .tmp2q, .memia(.src0q, .tmp0, .add_size), ._, ._ }, |
| 5307 | .{ ._, ._, .sbb, .tmp2q, .memia(.src1q, .tmp0, .add_size), ._, ._ }, | 5304 | .{ ._, ._, .sbb, .tmp2q, .memia(.src1q, .tmp0, .add_size), ._, ._ }, |
| 5308 | .{ ._, ._, .lea, .tmp0p, .lead(.none, .tmp0, 8), ._, ._ }, | 5305 | .{ ._, ._, .lea, .tmp0p, .lead(.tmp0, 8), ._, ._ }, |
| 5309 | .{ ._, ._c, .de, .tmp1d, ._, ._, ._ }, | 5306 | .{ ._, ._c, .de, .tmp1d, ._, ._, ._ }, |
| 5310 | .{ ._, ._nz, .j, .@"1b", ._, ._, ._ }, | 5307 | .{ ._, ._nz, .j, .@"1b", ._, ._, ._ }, |
| 5311 | .{ ._, ._, .mov, .tmp2q, .memia(.src0q, .tmp0, .add_size), ._, ._ }, | 5308 | .{ ._, ._, .mov, .tmp2q, .memia(.src0q, .tmp0, .add_size), ._, ._ }, |
| ... | @@ -5344,7 +5341,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -5344,7 +5341,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 5344 | .{ ._, ._c, .cl, ._, ._, ._, ._ }, | 5341 | .{ ._, ._c, .cl, ._, ._, ._, ._ }, |
| 5345 | .{ .@"1:", ._, .mov, .tmp2q, .memia(.src0q, .tmp0, .add_size), ._, ._ }, | 5342 | .{ .@"1:", ._, .mov, .tmp2q, .memia(.src0q, .tmp0, .add_size), ._, ._ }, |
| 5346 | .{ ._, ._, .sbb, .tmp2q, .memia(.src1q, .tmp0, .add_size), ._, ._ }, | 5343 | .{ ._, ._, .sbb, .tmp2q, .memia(.src1q, .tmp0, .add_size), ._, ._ }, |
| 5347 | .{ ._, ._, .lea, .tmp0p, .lead(.none, .tmp0, 8), ._, ._ }, | 5344 | .{ ._, ._, .lea, .tmp0p, .lead(.tmp0, 8), ._, ._ }, |
| 5348 | .{ ._, ._c, .de, .tmp1d, ._, ._, ._ }, | 5345 | .{ ._, ._c, .de, .tmp1d, ._, ._, ._ }, |
| 5349 | .{ ._, ._nz, .j, .@"1b", ._, ._, ._ }, | 5346 | .{ ._, ._nz, .j, .@"1b", ._, ._, ._ }, |
| 5350 | .{ ._, ._, .lea, .tmp1p, .memia(.src0, .tmp0, .add_size_sub_elem_size), ._, ._ }, | 5347 | .{ ._, ._, .lea, .tmp1p, .memia(.src0, .tmp0, .add_size_sub_elem_size), ._, ._ }, |
| ... | @@ -5381,7 +5378,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -5381,7 +5378,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 5381 | .{ ._, ._c, .cl, ._, ._, ._, ._ }, | 5378 | .{ ._, ._c, .cl, ._, ._, ._, ._ }, |
| 5382 | .{ .@"1:", ._, .mov, .tmp2q, .memia(.src0q, .tmp0, .add_size), ._, ._ }, | 5379 | .{ .@"1:", ._, .mov, .tmp2q, .memia(.src0q, .tmp0, .add_size), ._, ._ }, |
| 5383 | .{ ._, ._, .sbb, .tmp2q, .memia(.src1q, .tmp0, .add_size), ._, ._ }, | 5380 | .{ ._, ._, .sbb, .tmp2q, .memia(.src1q, .tmp0, .add_size), ._, ._ }, |
| 5384 | .{ ._, ._, .lea, .tmp0p, .lead(.none, .tmp0, 8), ._, ._ }, | 5381 | .{ ._, ._, .lea, .tmp0p, .lead(.tmp0, 8), ._, ._ }, |
| 5385 | .{ ._, ._c, .de, .tmp1d, ._, ._, ._ }, | 5382 | .{ ._, ._c, .de, .tmp1d, ._, ._, ._ }, |
| 5386 | .{ ._, ._nz, .j, .@"1b", ._, ._, ._ }, | 5383 | .{ ._, ._nz, .j, .@"1b", ._, ._, ._ }, |
| 5387 | .{ ._, ._, .lea, .tmp1p, .memia(.src0, .tmp0, .add_size_sub_elem_size), ._, ._ }, | 5384 | .{ ._, ._, .lea, .tmp1p, .memia(.src0, .tmp0, .add_size_sub_elem_size), ._, ._ }, |
| ... | @@ -5569,13 +5566,13 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -5569,13 +5566,13 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 5569 | .dst_temps = .{.mem}, | 5566 | .dst_temps = .{.mem}, |
| 5570 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 5567 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 5571 | .each = .{ .once = &.{ | 5568 | .each = .{ .once = &.{ |
| 5572 | .{ ._, ._, .mov, .tmp0q, .sa(.src0, .sub_size), ._, ._ }, | 5569 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 5573 | .{ .@"0:", .vp_, .xor, .tmp2x, .tmp2x, .tmp2x, ._ }, | 5570 | .{ .@"0:", .vp_, .xor, .tmp2x, .tmp2x, .tmp2x, ._ }, |
| 5574 | .{ ._, .vp_w, .insr, .tmp1x, .tmp2x, .memia(.src0w, .tmp0, .add_size), .ui(0) }, | 5571 | .{ ._, .vp_w, .insr, .tmp1x, .tmp2x, .memia(.src0w, .tmp0, .add_size), .ui(0) }, |
| 5575 | .{ ._, .vp_w, .insr, .tmp2x, .tmp2x, .memia(.src1w, .tmp0, .add_size), .ui(0) }, | 5572 | .{ ._, .vp_w, .insr, .tmp2x, .tmp2x, .memia(.src1w, .tmp0, .add_size), .ui(0) }, |
| 5576 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, | 5573 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 5577 | .{ ._, .vp_w, .extr, .memia(.dst0w, .tmp0, .add_size), .tmp1x, .ui(0), ._ }, | 5574 | .{ ._, .vp_w, .extr, .memia(.dst0w, .tmp0, .add_size), .tmp1x, .ui(0), ._ }, |
| 5578 | .{ ._, ._, .add, .tmp0q, .si(2), ._, ._ }, | 5575 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 5579 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 5576 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 5580 | } }, | 5577 | } }, |
| 5581 | }, .{ | 5578 | }, .{ |
| ... | @@ -5602,14 +5599,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -5602,14 +5599,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 5602 | .dst_temps = .{.mem}, | 5599 | .dst_temps = .{.mem}, |
| 5603 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 5600 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 5604 | .each = .{ .once = &.{ | 5601 | .each = .{ .once = &.{ |
| 5605 | .{ ._, ._, .mov, .tmp0q, .sa(.src0, .sub_size), ._, ._ }, | 5602 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 5606 | .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ }, | 5603 | .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ }, |
| 5607 | .{ ._, .p_, .xor, .tmp2x, .tmp2x, ._, ._ }, | 5604 | .{ ._, .p_, .xor, .tmp2x, .tmp2x, ._, ._ }, |
| 5608 | .{ ._, .p_w, .insr, .tmp1x, .memia(.src0w, .tmp0, .add_size), .ui(0), ._ }, | 5605 | .{ ._, .p_w, .insr, .tmp1x, .memia(.src0w, .tmp0, .add_size), .ui(0), ._ }, |
| 5609 | .{ ._, .p_w, .insr, .tmp2x, .memia(.src1w, .tmp0, .add_size), .ui(0), ._ }, | 5606 | .{ ._, .p_w, .insr, .tmp2x, .memia(.src1w, .tmp0, .add_size), .ui(0), ._ }, |
| 5610 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, | 5607 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 5611 | .{ ._, .p_w, .extr, .memia(.dst0w, .tmp0, .add_size), .tmp1x, .ui(0), ._ }, | 5608 | .{ ._, .p_w, .extr, .memia(.dst0w, .tmp0, .add_size), .tmp1x, .ui(0), ._ }, |
| 5612 | .{ ._, ._, .add, .tmp0q, .si(2), ._, ._ }, | 5609 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 5613 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 5610 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 5614 | } }, | 5611 | } }, |
| 5615 | }, .{ | 5612 | }, .{ |
| ... | @@ -5636,7 +5633,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -5636,7 +5633,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 5636 | .dst_temps = .{.mem}, | 5633 | .dst_temps = .{.mem}, |
| 5637 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 5634 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 5638 | .each = .{ .once = &.{ | 5635 | .each = .{ .once = &.{ |
| 5639 | .{ ._, ._, .mov, .tmp0q, .sa(.src0, .sub_size), ._, ._ }, | 5636 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 5640 | .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ }, | 5637 | .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ }, |
| 5641 | .{ ._, .p_, .xor, .tmp2x, .tmp2x, ._, ._ }, | 5638 | .{ ._, .p_, .xor, .tmp2x, .tmp2x, ._, ._ }, |
| 5642 | .{ ._, .p_w, .insr, .tmp1x, .memia(.src0w, .tmp0, .add_size), .ui(0), ._ }, | 5639 | .{ ._, .p_w, .insr, .tmp1x, .memia(.src0w, .tmp0, .add_size), .ui(0), ._ }, |
| ... | @@ -5644,7 +5641,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -5644,7 +5641,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 5644 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, | 5641 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 5645 | .{ ._, .p_w, .extr, .tmp4d, .tmp1x, .ui(0), ._ }, | 5642 | .{ ._, .p_w, .extr, .tmp4d, .tmp1x, .ui(0), ._ }, |
| 5646 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_size), .tmp4w, ._, ._ }, | 5643 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_size), .tmp4w, ._, ._ }, |
| 5647 | .{ ._, ._, .add, .tmp0q, .si(2), ._, ._ }, | 5644 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 5648 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 5645 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 5649 | } }, | 5646 | } }, |
| 5650 | }, .{ | 5647 | }, .{ |
| ... | @@ -5659,7 +5656,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -5659,7 +5656,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 5659 | .call_frame = .{ .alignment = .@"16" }, | 5656 | .call_frame = .{ .alignment = .@"16" }, |
| 5660 | .extra_temps = .{ | 5657 | .extra_temps = .{ |
| 5661 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 5658 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 5662 | .{ .type = .f16, .kind = .{ .reg = .eax } }, | 5659 | .{ .type = .f16, .kind = .{ .reg = .ax } }, |
| 5663 | .{ .type = .f32, .kind = .mem }, | 5660 | .{ .type = .f32, .kind = .mem }, |
| 5664 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | 5661 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 5665 | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, | 5662 | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| ... | @@ -5671,7 +5668,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -5671,7 +5668,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 5671 | .dst_temps = .{.mem}, | 5668 | .dst_temps = .{.mem}, |
| 5672 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 5669 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 5673 | .each = .{ .once = &.{ | 5670 | .each = .{ .once = &.{ |
| 5674 | .{ ._, ._, .mov, .tmp0q, .sa(.src0, .sub_size), ._, ._ }, | 5671 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 5675 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_size), ._, ._ }, | 5672 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_size), ._, ._ }, |
| 5676 | .{ ._, ._, .mov, .mem(.tmp2d), .tmp1d, ._, ._ }, | 5673 | .{ ._, ._, .mov, .mem(.tmp2d), .tmp1d, ._, ._ }, |
| 5677 | .{ ._, ._ss, .mov, .tmp3x, .mem(.tmp2d), ._, ._ }, | 5674 | .{ ._, ._ss, .mov, .tmp3x, .mem(.tmp2d), ._, ._ }, |
| ... | @@ -5682,7 +5679,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -5682,7 +5679,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 5682 | .{ ._, ._ss, .mov, .mem(.tmp2d), .tmp3x, ._, ._ }, | 5679 | .{ ._, ._ss, .mov, .mem(.tmp2d), .tmp3x, ._, ._ }, |
| 5683 | .{ ._, ._, .mov, .tmp1d, .mem(.tmp2d), ._, ._ }, | 5680 | .{ ._, ._, .mov, .tmp1d, .mem(.tmp2d), ._, ._ }, |
| 5684 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_size), .tmp1w, ._, ._ }, | 5681 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_size), .tmp1w, ._, ._ }, |
| 5685 | .{ ._, ._, .add, .tmp0q, .si(2), ._, ._ }, | 5682 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 5686 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 5683 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 5687 | } }, | 5684 | } }, |
| 5688 | }, .{ | 5685 | }, .{ |
| ... | @@ -5880,14 +5877,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -5880,14 +5877,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 5880 | .dst_temps = .{.mem}, | 5877 | .dst_temps = .{.mem}, |
| 5881 | .clobbers = .{ .eflags = true }, | 5878 | .clobbers = .{ .eflags = true }, |
| 5882 | .each = .{ .once = &.{ | 5879 | .each = .{ .once = &.{ |
| 5883 | .{ ._, ._, .mov, .tmp0q, .sa(.src0, .sub_size), ._, ._ }, | 5880 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 5884 | .{ .@"0:", .v_ps, .mova, .tmp1y, .memia(.src0y, .tmp0, .add_size), ._, ._ }, | 5881 | .{ .@"0:", .v_ps, .mova, .tmp1y, .memia(.src0y, .tmp0, .add_size), ._, ._ }, |
| 5885 | .{ ._, .v_ps, .mova, .tmp2y, .memia(.src1y, .tmp0, .add_size), ._, ._ }, | 5882 | .{ ._, .v_ps, .mova, .tmp2y, .memia(.src1y, .tmp0, .add_size), ._, ._ }, |
| 5886 | .{ ._, .v_ps, .cmp, .tmp3y, .tmp1y, .tmp1y, .vp(.unord) }, | 5883 | .{ ._, .v_ps, .cmp, .tmp3y, .tmp1y, .tmp1y, .vp(.unord) }, |
| 5887 | .{ ._, .v_ps, .max, .tmp1y, .tmp2y, .tmp1y, ._ }, | 5884 | .{ ._, .v_ps, .max, .tmp1y, .tmp2y, .tmp1y, ._ }, |
| 5888 | .{ ._, .v_ps, .blendv, .tmp1y, .tmp1y, .tmp2y, .tmp3y }, | 5885 | .{ ._, .v_ps, .blendv, .tmp1y, .tmp1y, .tmp2y, .tmp3y }, |
| 5889 | .{ ._, .v_ps, .mova, .memia(.dst0y, .tmp0, .add_size), .tmp1y, ._, ._ }, | 5886 | .{ ._, .v_ps, .mova, .memia(.dst0y, .tmp0, .add_size), .tmp1y, ._, ._ }, |
| 5890 | .{ ._, ._, .add, .tmp0q, .si(32), ._, ._ }, | 5887 | .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, |
| 5891 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 5888 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 5892 | } }, | 5889 | } }, |
| 5893 | }, .{ | 5890 | }, .{ |
| ... | @@ -5913,7 +5910,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -5913,7 +5910,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 5913 | .dst_temps = .{.mem}, | 5910 | .dst_temps = .{.mem}, |
| 5914 | .clobbers = .{ .eflags = true }, | 5911 | .clobbers = .{ .eflags = true }, |
| 5915 | .each = .{ .once = &.{ | 5912 | .each = .{ .once = &.{ |
| 5916 | .{ ._, ._, .mov, .tmp0q, .sa(.src0, .sub_size), ._, ._ }, | 5913 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 5917 | .{ .@"0:", ._ps, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, | 5914 | .{ .@"0:", ._ps, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, |
| 5918 | .{ ._, ._ps, .mova, .tmp2x, .memia(.src1x, .tmp0, .add_size), ._, ._ }, | 5915 | .{ ._, ._ps, .mova, .tmp2x, .memia(.src1x, .tmp0, .add_size), ._, ._ }, |
| 5919 | .{ ._, ._ps, .mova, .tmp3x, .tmp2x, ._, ._ }, | 5916 | .{ ._, ._ps, .mova, .tmp3x, .tmp2x, ._, ._ }, |
| ... | @@ -5921,7 +5918,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -5921,7 +5918,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 5921 | .{ ._, ._ps, .cmp, .tmp1x, .tmp1x, .vp(.unord), ._ }, | 5918 | .{ ._, ._ps, .cmp, .tmp1x, .tmp1x, .vp(.unord), ._ }, |
| 5922 | .{ ._, ._ps, .blendv, .tmp3x, .tmp2x, .tmp1x, ._ }, | 5919 | .{ ._, ._ps, .blendv, .tmp3x, .tmp2x, .tmp1x, ._ }, |
| 5923 | .{ ._, ._ps, .mova, .memia(.dst0x, .tmp0, .add_size), .tmp3x, ._, ._ }, | 5920 | .{ ._, ._ps, .mova, .memia(.dst0x, .tmp0, .add_size), .tmp3x, ._, ._ }, |
| 5924 | .{ ._, ._, .add, .tmp0q, .si(16), ._, ._ }, | 5921 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 5925 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 5922 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 5926 | } }, | 5923 | } }, |
| 5927 | }, .{ | 5924 | }, .{ |
| ... | @@ -5947,7 +5944,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -5947,7 +5944,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 5947 | .dst_temps = .{.mem}, | 5944 | .dst_temps = .{.mem}, |
| 5948 | .clobbers = .{ .eflags = true }, | 5945 | .clobbers = .{ .eflags = true }, |
| 5949 | .each = .{ .once = &.{ | 5946 | .each = .{ .once = &.{ |
| 5950 | .{ ._, ._, .mov, .tmp0q, .sa(.src0, .sub_size), ._, ._ }, | 5947 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 5951 | .{ .@"0:", ._ps, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, | 5948 | .{ .@"0:", ._ps, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, |
| 5952 | .{ ._, ._ps, .mova, .tmp2x, .memia(.src1x, .tmp0, .add_size), ._, ._ }, | 5949 | .{ ._, ._ps, .mova, .tmp2x, .memia(.src1x, .tmp0, .add_size), ._, ._ }, |
| 5953 | .{ ._, ._ps, .mova, .tmp3x, .tmp2x, ._, ._ }, | 5950 | .{ ._, ._ps, .mova, .tmp3x, .tmp2x, ._, ._ }, |
| ... | @@ -5957,7 +5954,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -5957,7 +5954,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 5957 | .{ ._, ._ps, .andn, .tmp1x, .tmp2x, ._, ._ }, | 5954 | .{ ._, ._ps, .andn, .tmp1x, .tmp2x, ._, ._ }, |
| 5958 | .{ ._, ._ps, .@"or", .tmp1x, .tmp3x, ._, ._ }, | 5955 | .{ ._, ._ps, .@"or", .tmp1x, .tmp3x, ._, ._ }, |
| 5959 | .{ ._, ._ps, .mova, .memia(.dst0x, .tmp0, .add_size), .tmp1x, ._, ._ }, | 5956 | .{ ._, ._ps, .mova, .memia(.dst0x, .tmp0, .add_size), .tmp1x, ._, ._ }, |
| 5960 | .{ ._, ._, .add, .tmp0q, .si(16), ._, ._ }, | 5957 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 5961 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 5958 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 5962 | } }, | 5959 | } }, |
| 5963 | }, .{ | 5960 | }, .{ |
| ... | @@ -6181,14 +6178,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -6181,14 +6178,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 6181 | .dst_temps = .{.mem}, | 6178 | .dst_temps = .{.mem}, |
| 6182 | .clobbers = .{ .eflags = true }, | 6179 | .clobbers = .{ .eflags = true }, |
| 6183 | .each = .{ .once = &.{ | 6180 | .each = .{ .once = &.{ |
| 6184 | .{ ._, ._, .mov, .tmp0q, .sa(.src0, .sub_size), ._, ._ }, | 6181 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 6185 | .{ .@"0:", .v_pd, .mova, .tmp1y, .memia(.src0y, .tmp0, .add_size), ._, ._ }, | 6182 | .{ .@"0:", .v_pd, .mova, .tmp1y, .memia(.src0y, .tmp0, .add_size), ._, ._ }, |
| 6186 | .{ ._, .v_pd, .mova, .tmp2y, .memia(.src1y, .tmp0, .add_size), ._, ._ }, | 6183 | .{ ._, .v_pd, .mova, .tmp2y, .memia(.src1y, .tmp0, .add_size), ._, ._ }, |
| 6187 | .{ ._, .v_pd, .cmp, .tmp3y, .tmp1y, .tmp1y, .vp(.unord) }, | 6184 | .{ ._, .v_pd, .cmp, .tmp3y, .tmp1y, .tmp1y, .vp(.unord) }, |
| 6188 | .{ ._, .v_pd, .max, .tmp1y, .tmp2y, .tmp1y, ._ }, | 6185 | .{ ._, .v_pd, .max, .tmp1y, .tmp2y, .tmp1y, ._ }, |
| 6189 | .{ ._, .v_pd, .blendv, .tmp1y, .tmp1y, .tmp2y, .tmp3y }, | 6186 | .{ ._, .v_pd, .blendv, .tmp1y, .tmp1y, .tmp2y, .tmp3y }, |
| 6190 | .{ ._, .v_pd, .mova, .memia(.dst0y, .tmp0, .add_size), .tmp1y, ._, ._ }, | 6187 | .{ ._, .v_pd, .mova, .memia(.dst0y, .tmp0, .add_size), .tmp1y, ._, ._ }, |
| 6191 | .{ ._, ._, .add, .tmp0q, .si(32), ._, ._ }, | 6188 | .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, |
| 6192 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 6189 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 6193 | } }, | 6190 | } }, |
| 6194 | }, .{ | 6191 | }, .{ |
| ... | @@ -6214,7 +6211,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -6214,7 +6211,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 6214 | .dst_temps = .{.mem}, | 6211 | .dst_temps = .{.mem}, |
| 6215 | .clobbers = .{ .eflags = true }, | 6212 | .clobbers = .{ .eflags = true }, |
| 6216 | .each = .{ .once = &.{ | 6213 | .each = .{ .once = &.{ |
| 6217 | .{ ._, ._, .mov, .tmp0q, .sa(.src0, .sub_size), ._, ._ }, | 6214 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 6218 | .{ .@"0:", ._pd, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, | 6215 | .{ .@"0:", ._pd, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, |
| 6219 | .{ ._, ._pd, .mova, .tmp2x, .memia(.src1x, .tmp0, .add_size), ._, ._ }, | 6216 | .{ ._, ._pd, .mova, .tmp2x, .memia(.src1x, .tmp0, .add_size), ._, ._ }, |
| 6220 | .{ ._, ._pd, .mova, .tmp3x, .tmp2x, ._, ._ }, | 6217 | .{ ._, ._pd, .mova, .tmp3x, .tmp2x, ._, ._ }, |
| ... | @@ -6222,7 +6219,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -6222,7 +6219,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 6222 | .{ ._, ._pd, .cmp, .tmp1x, .tmp1x, .vp(.unord), ._ }, | 6219 | .{ ._, ._pd, .cmp, .tmp1x, .tmp1x, .vp(.unord), ._ }, |
| 6223 | .{ ._, ._pd, .blendv, .tmp3x, .tmp2x, .tmp1x, ._ }, | 6220 | .{ ._, ._pd, .blendv, .tmp3x, .tmp2x, .tmp1x, ._ }, |
| 6224 | .{ ._, ._pd, .mova, .memia(.dst0x, .tmp0, .add_size), .tmp3x, ._, ._ }, | 6221 | .{ ._, ._pd, .mova, .memia(.dst0x, .tmp0, .add_size), .tmp3x, ._, ._ }, |
| 6225 | .{ ._, ._, .add, .tmp0q, .si(16), ._, ._ }, | 6222 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 6226 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 6223 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 6227 | } }, | 6224 | } }, |
| 6228 | }, .{ | 6225 | }, .{ |
| ... | @@ -6248,7 +6245,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -6248,7 +6245,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 6248 | .dst_temps = .{.mem}, | 6245 | .dst_temps = .{.mem}, |
| 6249 | .clobbers = .{ .eflags = true }, | 6246 | .clobbers = .{ .eflags = true }, |
| 6250 | .each = .{ .once = &.{ | 6247 | .each = .{ .once = &.{ |
| 6251 | .{ ._, ._, .mov, .tmp0q, .sa(.src0, .sub_size), ._, ._ }, | 6248 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 6252 | .{ .@"0:", ._pd, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, | 6249 | .{ .@"0:", ._pd, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, |
| 6253 | .{ ._, ._pd, .mova, .tmp2x, .memia(.src1x, .tmp0, .add_size), ._, ._ }, | 6250 | .{ ._, ._pd, .mova, .tmp2x, .memia(.src1x, .tmp0, .add_size), ._, ._ }, |
| 6254 | .{ ._, ._pd, .mova, .tmp3x, .tmp2x, ._, ._ }, | 6251 | .{ ._, ._pd, .mova, .tmp3x, .tmp2x, ._, ._ }, |
| ... | @@ -6258,7 +6255,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -6258,7 +6255,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 6258 | .{ ._, ._pd, .andn, .tmp1x, .tmp2x, ._, ._ }, | 6255 | .{ ._, ._pd, .andn, .tmp1x, .tmp2x, ._, ._ }, |
| 6259 | .{ ._, ._pd, .@"or", .tmp1x, .tmp3x, ._, ._ }, | 6256 | .{ ._, ._pd, .@"or", .tmp1x, .tmp3x, ._, ._ }, |
| 6260 | .{ ._, ._pd, .mova, .memia(.dst0x, .tmp0, .add_size), .tmp1x, ._, ._ }, | 6257 | .{ ._, ._pd, .mova, .memia(.dst0x, .tmp0, .add_size), .tmp1x, ._, ._ }, |
| 6261 | .{ ._, ._, .add, .tmp0q, .si(16), ._, ._ }, | 6258 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 6262 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 6259 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 6263 | } }, | 6260 | } }, |
| 6264 | }, .{ | 6261 | }, .{ |
| ... | @@ -6285,14 +6282,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -6285,14 +6282,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 6285 | .dst_temps = .{.mem}, | 6282 | .dst_temps = .{.mem}, |
| 6286 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 6283 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 6287 | .each = .{ .once = &.{ | 6284 | .each = .{ .once = &.{ |
| 6288 | .{ ._, ._, .mov, .tmp0q, .sa(.src0, .sub_size), ._, ._ }, | 6285 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 6289 | .{ .@"0:", ._ps, .xor, .tmp1x, .tmp1x, ._, ._ }, | 6286 | .{ .@"0:", ._ps, .xor, .tmp1x, .tmp1x, ._, ._ }, |
| 6290 | .{ ._, ._ps, .xor, .tmp2x, .tmp2x, ._, ._ }, | 6287 | .{ ._, ._ps, .xor, .tmp2x, .tmp2x, ._, ._ }, |
| 6291 | .{ ._, ._ps, .movl, .tmp1x, .memia(.src0q, .tmp0, .add_size), ._, ._ }, | 6288 | .{ ._, ._ps, .movl, .tmp1x, .memia(.src0q, .tmp0, .add_size), ._, ._ }, |
| 6292 | .{ ._, ._ps, .movl, .tmp2x, .memia(.src1q, .tmp0, .add_size), ._, ._ }, | 6289 | .{ ._, ._ps, .movl, .tmp2x, .memia(.src1q, .tmp0, .add_size), ._, ._ }, |
| 6293 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, | 6290 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 6294 | .{ ._, ._ps, .movl, .memia(.dst0q, .tmp0, .add_size), .tmp1q, ._, ._ }, | 6291 | .{ ._, ._ps, .movl, .memia(.dst0q, .tmp0, .add_size), .tmp1q, ._, ._ }, |
| 6295 | .{ ._, ._, .add, .tmp0q, .si(8), ._, ._ }, | 6292 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 6296 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 6293 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 6297 | } }, | 6294 | } }, |
| 6298 | }, .{ | 6295 | }, .{ |
| ... | @@ -6582,12 +6579,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -6582,12 +6579,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 6582 | .dst_temps = .{.mem}, | 6579 | .dst_temps = .{.mem}, |
| 6583 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 6580 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 6584 | .each = .{ .once = &.{ | 6581 | .each = .{ .once = &.{ |
| 6585 | .{ ._, ._, .mov, .tmp0q, .sa(.src0, .sub_size), ._, ._ }, | 6582 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 6586 | .{ .@"0:", .v_dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, | 6583 | .{ .@"0:", .v_dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, |
| 6587 | .{ ._, .v_dqa, .mov, .tmp2x, .memia(.src1x, .tmp0, .add_size), ._, ._ }, | 6584 | .{ ._, .v_dqa, .mov, .tmp2x, .memia(.src1x, .tmp0, .add_size), ._, ._ }, |
| 6588 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, | 6585 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 6589 | .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_size), .tmp1x, ._, ._ }, | 6586 | .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_size), .tmp1x, ._, ._ }, |
| 6590 | .{ ._, ._, .add, .tmp0q, .si(16), ._, ._ }, | 6587 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 6591 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 6588 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 6592 | } }, | 6589 | } }, |
| 6593 | }, .{ | 6590 | }, .{ |
| ... | @@ -6614,12 +6611,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -6614,12 +6611,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 6614 | .dst_temps = .{.mem}, | 6611 | .dst_temps = .{.mem}, |
| 6615 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 6612 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 6616 | .each = .{ .once = &.{ | 6613 | .each = .{ .once = &.{ |
| 6617 | .{ ._, ._, .mov, .tmp0q, .sa(.src0, .sub_size), ._, ._ }, | 6614 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 6618 | .{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, | 6615 | .{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, |
| 6619 | .{ ._, ._dqa, .mov, .tmp2x, .memia(.src1x, .tmp0, .add_size), ._, ._ }, | 6616 | .{ ._, ._dqa, .mov, .tmp2x, .memia(.src1x, .tmp0, .add_size), ._, ._ }, |
| 6620 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, | 6617 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 6621 | .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_size), .tmp1x, ._, ._ }, | 6618 | .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_size), .tmp1x, ._, ._ }, |
| 6622 | .{ ._, ._, .add, .tmp0q, .si(16), ._, ._ }, | 6619 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 6623 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 6620 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 6624 | } }, | 6621 | } }, |
| 6625 | }, .{ | 6622 | }, .{ |
| ... | @@ -6646,12 +6643,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -6646,12 +6643,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 6646 | .dst_temps = .{.mem}, | 6643 | .dst_temps = .{.mem}, |
| 6647 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 6644 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 6648 | .each = .{ .once = &.{ | 6645 | .each = .{ .once = &.{ |
| 6649 | .{ ._, ._, .mov, .tmp0q, .sa(.src0, .sub_size), ._, ._ }, | 6646 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 6650 | .{ .@"0:", ._ps, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, | 6647 | .{ .@"0:", ._ps, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, |
| 6651 | .{ ._, ._ps, .mova, .tmp2x, .memia(.src1x, .tmp0, .add_size), ._, ._ }, | 6648 | .{ ._, ._ps, .mova, .tmp2x, .memia(.src1x, .tmp0, .add_size), ._, ._ }, |
| 6652 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, | 6649 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 6653 | .{ ._, ._ps, .mova, .memia(.dst0x, .tmp0, .add_size), .tmp1x, ._, ._ }, | 6650 | .{ ._, ._ps, .mova, .memia(.dst0x, .tmp0, .add_size), .tmp1x, ._, ._ }, |
| 6654 | .{ ._, ._, .add, .tmp0q, .si(16), ._, ._ }, | 6651 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 6655 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 6652 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 6656 | } }, | 6653 | } }, |
| 6657 | } }) catch |err| switch (err) { | 6654 | } }) catch |err| switch (err) { |
| ... | @@ -8382,7 +8379,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -8382,7 +8379,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 8382 | .dst_temps = .{.{ .rc = .sse }}, | 8379 | .dst_temps = .{.{ .rc = .sse }}, |
| 8383 | .each = .{ .once = &.{ | 8380 | .each = .{ .once = &.{ |
| 8384 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, | 8381 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 8385 | .{ ._, ._dqa, .mov, .dst0x, .lea(.xword, .tmp0), ._, ._ }, | 8382 | .{ ._, ._dqa, .mov, .dst0x, .lea(.tmp0x), ._, ._ }, |
| 8386 | .{ ._, ._dqa, .mov, .tmp2x, .dst0x, ._, ._ }, | 8383 | .{ ._, ._dqa, .mov, .tmp2x, .dst0x, ._, ._ }, |
| 8387 | .{ ._, .p_, .xor, .dst0x, .src1x, ._, ._ }, | 8384 | .{ ._, .p_, .xor, .dst0x, .src1x, ._, ._ }, |
| 8388 | .{ ._, .p_, .xor, .tmp2x, .src0x, ._, ._ }, | 8385 | .{ ._, .p_, .xor, .tmp2x, .src0x, ._, ._ }, |
| ... | @@ -8520,7 +8517,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -8520,7 +8517,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 8520 | .clobbers = .{ .eflags = true }, | 8517 | .clobbers = .{ .eflags = true }, |
| 8521 | .each = .{ .once = &.{ | 8518 | .each = .{ .once = &.{ |
| 8522 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, | 8519 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 8523 | .{ ._, ._dqa, .mov, .tmp2x, .lea(.xword, .tmp0), ._, ._ }, | 8520 | .{ ._, ._dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ }, |
| 8524 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | 8521 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 8525 | .{ .@"0:", ._dqa, .mov, .tmp3x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, | 8522 | .{ .@"0:", ._dqa, .mov, .tmp3x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, |
| 8526 | .{ ._, ._dqa, .mov, .tmp4x, .memia(.src1x, .tmp0, .add_size), ._, ._ }, | 8523 | .{ ._, ._dqa, .mov, .tmp4x, .memia(.src1x, .tmp0, .add_size), ._, ._ }, |
| ... | @@ -8843,7 +8840,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -8843,7 +8840,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 8843 | .dst_temps = .{.{ .rc = .sse }}, | 8840 | .dst_temps = .{.{ .rc = .sse }}, |
| 8844 | .each = .{ .once = &.{ | 8841 | .each = .{ .once = &.{ |
| 8845 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, | 8842 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 8846 | .{ ._, .v_, .movddup, .tmp2x, .lea(.qword, .tmp0), ._, ._ }, | 8843 | .{ ._, .v_, .movddup, .tmp2x, .lea(.tmp0q), ._, ._ }, |
| 8847 | .{ ._, .vp_, .xor, .dst0x, .tmp2x, .src0x, ._ }, | 8844 | .{ ._, .vp_, .xor, .dst0x, .tmp2x, .src0x, ._ }, |
| 8848 | .{ ._, .vp_, .xor, .tmp2x, .tmp2x, .src1x, ._ }, | 8845 | .{ ._, .vp_, .xor, .tmp2x, .tmp2x, .src1x, ._ }, |
| 8849 | .{ ._, .vp_q, .cmpgt, .dst0x, .dst0x, .tmp2x, ._ }, | 8846 | .{ ._, .vp_q, .cmpgt, .dst0x, .dst0x, .tmp2x, ._ }, |
| ... | @@ -8874,7 +8871,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -8874,7 +8871,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 8874 | .dst_temps = .{.{ .ref = .src0 }}, | 8871 | .dst_temps = .{.{ .ref = .src0 }}, |
| 8875 | .each = .{ .once = &.{ | 8872 | .each = .{ .once = &.{ |
| 8876 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, | 8873 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 8877 | .{ ._, ._, .movddup, .tmp2x, .lea(.qword, .tmp0), ._, ._ }, | 8874 | .{ ._, ._, .movddup, .tmp2x, .lea(.tmp0q), ._, ._ }, |
| 8878 | .{ ._, ._dqa, .mov, .tmp3x, .tmp2x, ._, ._ }, | 8875 | .{ ._, ._dqa, .mov, .tmp3x, .tmp2x, ._, ._ }, |
| 8879 | .{ ._, .p_, .xor, .tmp2x, .src0x, ._, ._ }, | 8876 | .{ ._, .p_, .xor, .tmp2x, .src0x, ._, ._ }, |
| 8880 | .{ ._, .p_, .xor, .tmp3x, .src1x, ._, ._ }, | 8877 | .{ ._, .p_, .xor, .tmp3x, .src1x, ._, ._ }, |
| ... | @@ -8906,7 +8903,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -8906,7 +8903,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 8906 | .dst_temps = .{.{ .rc = .sse }}, | 8903 | .dst_temps = .{.{ .rc = .sse }}, |
| 8907 | .each = .{ .once = &.{ | 8904 | .each = .{ .once = &.{ |
| 8908 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, | 8905 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 8909 | .{ ._, .vp_q, .broadcast, .tmp2y, .lea(.qword, .tmp0), ._, ._ }, | 8906 | .{ ._, .vp_q, .broadcast, .tmp2y, .lea(.tmp0q), ._, ._ }, |
| 8910 | .{ ._, .vp_, .xor, .dst0y, .tmp2y, .src0y, ._ }, | 8907 | .{ ._, .vp_, .xor, .dst0y, .tmp2y, .src0y, ._ }, |
| 8911 | .{ ._, .vp_, .xor, .tmp2y, .tmp2y, .src1y, ._ }, | 8908 | .{ ._, .vp_, .xor, .tmp2y, .tmp2y, .src1y, ._ }, |
| 8912 | .{ ._, .vp_q, .cmpgt, .dst0y, .dst0y, .tmp2y, ._ }, | 8909 | .{ ._, .vp_q, .cmpgt, .dst0y, .dst0y, .tmp2y, ._ }, |
| ... | @@ -8936,7 +8933,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -8936,7 +8933,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 8936 | .clobbers = .{ .eflags = true }, | 8933 | .clobbers = .{ .eflags = true }, |
| 8937 | .each = .{ .once = &.{ | 8934 | .each = .{ .once = &.{ |
| 8938 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, | 8935 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 8939 | .{ ._, .vp_q, .broadcast, .tmp2y, .lea(.qword, .tmp0), ._, ._ }, | 8936 | .{ ._, .vp_q, .broadcast, .tmp2y, .lea(.tmp0q), ._, ._ }, |
| 8940 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | 8937 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 8941 | .{ .@"0:", .v_dqa, .mov, .tmp3y, .memia(.src0y, .tmp0, .add_size), ._, ._ }, | 8938 | .{ .@"0:", .v_dqa, .mov, .tmp3y, .memia(.src0y, .tmp0, .add_size), ._, ._ }, |
| 8942 | .{ ._, .v_dqa, .mov, .tmp4y, .memia(.src1y, .tmp0, .add_size), ._, ._ }, | 8939 | .{ ._, .v_dqa, .mov, .tmp4y, .memia(.src1y, .tmp0, .add_size), ._, ._ }, |
| ... | @@ -8972,7 +8969,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -8972,7 +8969,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 8972 | .clobbers = .{ .eflags = true }, | 8969 | .clobbers = .{ .eflags = true }, |
| 8973 | .each = .{ .once = &.{ | 8970 | .each = .{ .once = &.{ |
| 8974 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, | 8971 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 8975 | .{ ._, .v_, .movddup, .tmp2x, .lea(.qword, .tmp0), ._, ._ }, | 8972 | .{ ._, .v_, .movddup, .tmp2x, .lea(.tmp0q), ._, ._ }, |
| 8976 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | 8973 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 8977 | .{ .@"0:", .v_dqa, .mov, .tmp3x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, | 8974 | .{ .@"0:", .v_dqa, .mov, .tmp3x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, |
| 8978 | .{ ._, .v_dqa, .mov, .tmp4x, .memia(.src1x, .tmp0, .add_size), ._, ._ }, | 8975 | .{ ._, .v_dqa, .mov, .tmp4x, .memia(.src1x, .tmp0, .add_size), ._, ._ }, |
| ... | @@ -9008,7 +9005,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -9008,7 +9005,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 9008 | .clobbers = .{ .eflags = true }, | 9005 | .clobbers = .{ .eflags = true }, |
| 9009 | .each = .{ .once = &.{ | 9006 | .each = .{ .once = &.{ |
| 9010 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, | 9007 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 9011 | .{ ._, ._, .movddup, .tmp2x, .lea(.qword, .tmp0), ._, ._ }, | 9008 | .{ ._, ._, .movddup, .tmp2x, .lea(.tmp0q), ._, ._ }, |
| 9012 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | 9009 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 9013 | .{ .@"0:", ._dqa, .mov, .tmp5x, .tmp2x, ._, ._ }, | 9010 | .{ .@"0:", ._dqa, .mov, .tmp5x, .tmp2x, ._, ._ }, |
| 9014 | .{ ._, ._dqa, .mov, .tmp6x, .tmp2x, ._, ._ }, | 9011 | .{ ._, ._dqa, .mov, .tmp6x, .tmp2x, ._, ._ }, |
| ... | @@ -9110,7 +9107,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -9110,7 +9107,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 9110 | .{ ._, ._c, .cl, ._, ._, ._, ._ }, | 9107 | .{ ._, ._c, .cl, ._, ._, ._, ._ }, |
| 9111 | .{ .@"1:", ._, .mov, .tmp2q, .memia(.src0q, .tmp0, .add_size), ._, ._ }, | 9108 | .{ .@"1:", ._, .mov, .tmp2q, .memia(.src0q, .tmp0, .add_size), ._, ._ }, |
| 9112 | .{ ._, ._, .sbb, .tmp2q, .memia(.src1q, .tmp0, .add_size), ._, ._ }, | 9109 | .{ ._, ._, .sbb, .tmp2q, .memia(.src1q, .tmp0, .add_size), ._, ._ }, |
| 9113 | .{ ._, ._, .lea, .tmp0p, .lead(.none, .tmp0, 8), ._, ._ }, | 9110 | .{ ._, ._, .lea, .tmp0p, .lead(.tmp0, 8), ._, ._ }, |
| 9114 | .{ ._, ._c, .de, .tmp1d, ._, ._, ._ }, | 9111 | .{ ._, ._c, .de, .tmp1d, ._, ._, ._ }, |
| 9115 | .{ ._, ._nz, .j, .@"1b", ._, ._, ._ }, | 9112 | .{ ._, ._nz, .j, .@"1b", ._, ._, ._ }, |
| 9116 | .{ ._, ._, .mov, .tmp2q, .memia(.src0q, .tmp0, .add_size), ._, ._ }, | 9113 | .{ ._, ._, .mov, .tmp2q, .memia(.src0q, .tmp0, .add_size), ._, ._ }, |
| ... | @@ -9149,7 +9146,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -9149,7 +9146,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 9149 | .{ ._, ._c, .cl, ._, ._, ._, ._ }, | 9146 | .{ ._, ._c, .cl, ._, ._, ._, ._ }, |
| 9150 | .{ .@"1:", ._, .mov, .tmp2q, .memia(.src0q, .tmp0, .add_size), ._, ._ }, | 9147 | .{ .@"1:", ._, .mov, .tmp2q, .memia(.src0q, .tmp0, .add_size), ._, ._ }, |
| 9151 | .{ ._, ._, .sbb, .tmp2q, .memia(.src1q, .tmp0, .add_size), ._, ._ }, | 9148 | .{ ._, ._, .sbb, .tmp2q, .memia(.src1q, .tmp0, .add_size), ._, ._ }, |
| 9152 | .{ ._, ._, .lea, .tmp0p, .lead(.none, .tmp0, 8), ._, ._ }, | 9149 | .{ ._, ._, .lea, .tmp0p, .lead(.tmp0, 8), ._, ._ }, |
| 9153 | .{ ._, ._c, .de, .tmp1d, ._, ._, ._ }, | 9150 | .{ ._, ._c, .de, .tmp1d, ._, ._, ._ }, |
| 9154 | .{ ._, ._nz, .j, .@"1b", ._, ._, ._ }, | 9151 | .{ ._, ._nz, .j, .@"1b", ._, ._, ._ }, |
| 9155 | .{ ._, ._, .mov, .tmp2q, .memia(.src0q, .tmp0, .add_size), ._, ._ }, | 9152 | .{ ._, ._, .mov, .tmp2q, .memia(.src0q, .tmp0, .add_size), ._, ._ }, |
| ... | @@ -9188,7 +9185,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -9188,7 +9185,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 9188 | .{ ._, ._c, .cl, ._, ._, ._, ._ }, | 9185 | .{ ._, ._c, .cl, ._, ._, ._, ._ }, |
| 9189 | .{ .@"1:", ._, .mov, .tmp2q, .memia(.src0q, .tmp0, .add_size), ._, ._ }, | 9186 | .{ .@"1:", ._, .mov, .tmp2q, .memia(.src0q, .tmp0, .add_size), ._, ._ }, |
| 9190 | .{ ._, ._, .sbb, .tmp2q, .memia(.src1q, .tmp0, .add_size), ._, ._ }, | 9187 | .{ ._, ._, .sbb, .tmp2q, .memia(.src1q, .tmp0, .add_size), ._, ._ }, |
| 9191 | .{ ._, ._, .lea, .tmp0p, .lead(.none, .tmp0, 8), ._, ._ }, | 9188 | .{ ._, ._, .lea, .tmp0p, .lead(.tmp0, 8), ._, ._ }, |
| 9192 | .{ ._, ._c, .de, .tmp1d, ._, ._, ._ }, | 9189 | .{ ._, ._c, .de, .tmp1d, ._, ._, ._ }, |
| 9193 | .{ ._, ._nz, .j, .@"1b", ._, ._, ._ }, | 9190 | .{ ._, ._nz, .j, .@"1b", ._, ._, ._ }, |
| 9194 | .{ ._, ._, .lea, .tmp1p, .memia(.src0, .tmp0, .add_size_sub_elem_size), ._, ._ }, | 9191 | .{ ._, ._, .lea, .tmp1p, .memia(.src0, .tmp0, .add_size_sub_elem_size), ._, ._ }, |
| ... | @@ -9225,7 +9222,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -9225,7 +9222,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 9225 | .{ ._, ._c, .cl, ._, ._, ._, ._ }, | 9222 | .{ ._, ._c, .cl, ._, ._, ._, ._ }, |
| 9226 | .{ .@"1:", ._, .mov, .tmp2q, .memia(.src0q, .tmp0, .add_size), ._, ._ }, | 9223 | .{ .@"1:", ._, .mov, .tmp2q, .memia(.src0q, .tmp0, .add_size), ._, ._ }, |
| 9227 | .{ ._, ._, .sbb, .tmp2q, .memia(.src1q, .tmp0, .add_size), ._, ._ }, | 9224 | .{ ._, ._, .sbb, .tmp2q, .memia(.src1q, .tmp0, .add_size), ._, ._ }, |
| 9228 | .{ ._, ._, .lea, .tmp0p, .lead(.none, .tmp0, 8), ._, ._ }, | 9225 | .{ ._, ._, .lea, .tmp0p, .lead(.tmp0, 8), ._, ._ }, |
| 9229 | .{ ._, ._c, .de, .tmp1d, ._, ._, ._ }, | 9226 | .{ ._, ._c, .de, .tmp1d, ._, ._, ._ }, |
| 9230 | .{ ._, ._nz, .j, .@"1b", ._, ._, ._ }, | 9227 | .{ ._, ._nz, .j, .@"1b", ._, ._, ._ }, |
| 9231 | .{ ._, ._, .lea, .tmp1p, .memia(.src0, .tmp0, .add_size_sub_elem_size), ._, ._ }, | 9228 | .{ ._, ._, .lea, .tmp1p, .memia(.src0, .tmp0, .add_size_sub_elem_size), ._, ._ }, |
| ... | @@ -9413,13 +9410,13 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -9413,13 +9410,13 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 9413 | .dst_temps = .{.mem}, | 9410 | .dst_temps = .{.mem}, |
| 9414 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 9411 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 9415 | .each = .{ .once = &.{ | 9412 | .each = .{ .once = &.{ |
| 9416 | .{ ._, ._, .mov, .tmp0q, .sa(.src0, .sub_size), ._, ._ }, | 9413 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 9417 | .{ .@"0:", .vp_, .xor, .tmp2x, .tmp2x, .tmp2x, ._ }, | 9414 | .{ .@"0:", .vp_, .xor, .tmp2x, .tmp2x, .tmp2x, ._ }, |
| 9418 | .{ ._, .vp_w, .insr, .tmp1x, .tmp2x, .memia(.src0w, .tmp0, .add_size), .ui(0) }, | 9415 | .{ ._, .vp_w, .insr, .tmp1x, .tmp2x, .memia(.src0w, .tmp0, .add_size), .ui(0) }, |
| 9419 | .{ ._, .vp_w, .insr, .tmp2x, .tmp2x, .memia(.src1w, .tmp0, .add_size), .ui(0) }, | 9416 | .{ ._, .vp_w, .insr, .tmp2x, .tmp2x, .memia(.src1w, .tmp0, .add_size), .ui(0) }, |
| 9420 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, | 9417 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 9421 | .{ ._, .vp_w, .extr, .memia(.dst0w, .tmp0, .add_size), .tmp1x, .ui(0), ._ }, | 9418 | .{ ._, .vp_w, .extr, .memia(.dst0w, .tmp0, .add_size), .tmp1x, .ui(0), ._ }, |
| 9422 | .{ ._, ._, .add, .tmp0q, .si(2), ._, ._ }, | 9419 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 9423 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 9420 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 9424 | } }, | 9421 | } }, |
| 9425 | }, .{ | 9422 | }, .{ |
| ... | @@ -9446,14 +9443,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -9446,14 +9443,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 9446 | .dst_temps = .{.mem}, | 9443 | .dst_temps = .{.mem}, |
| 9447 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 9444 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 9448 | .each = .{ .once = &.{ | 9445 | .each = .{ .once = &.{ |
| 9449 | .{ ._, ._, .mov, .tmp0q, .sa(.src0, .sub_size), ._, ._ }, | 9446 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 9450 | .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ }, | 9447 | .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ }, |
| 9451 | .{ ._, .p_, .xor, .tmp2x, .tmp2x, ._, ._ }, | 9448 | .{ ._, .p_, .xor, .tmp2x, .tmp2x, ._, ._ }, |
| 9452 | .{ ._, .p_w, .insr, .tmp1x, .memia(.src0w, .tmp0, .add_size), .ui(0), ._ }, | 9449 | .{ ._, .p_w, .insr, .tmp1x, .memia(.src0w, .tmp0, .add_size), .ui(0), ._ }, |
| 9453 | .{ ._, .p_w, .insr, .tmp2x, .memia(.src1w, .tmp0, .add_size), .ui(0), ._ }, | 9450 | .{ ._, .p_w, .insr, .tmp2x, .memia(.src1w, .tmp0, .add_size), .ui(0), ._ }, |
| 9454 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, | 9451 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 9455 | .{ ._, .p_w, .extr, .memia(.dst0w, .tmp0, .add_size), .tmp1x, .ui(0), ._ }, | 9452 | .{ ._, .p_w, .extr, .memia(.dst0w, .tmp0, .add_size), .tmp1x, .ui(0), ._ }, |
| 9456 | .{ ._, ._, .add, .tmp0q, .si(2), ._, ._ }, | 9453 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 9457 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 9454 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 9458 | } }, | 9455 | } }, |
| 9459 | }, .{ | 9456 | }, .{ |
| ... | @@ -9480,7 +9477,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -9480,7 +9477,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 9480 | .dst_temps = .{.mem}, | 9477 | .dst_temps = .{.mem}, |
| 9481 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 9478 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 9482 | .each = .{ .once = &.{ | 9479 | .each = .{ .once = &.{ |
| 9483 | .{ ._, ._, .mov, .tmp0q, .sa(.src0, .sub_size), ._, ._ }, | 9480 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 9484 | .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ }, | 9481 | .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ }, |
| 9485 | .{ ._, .p_, .xor, .tmp2x, .tmp2x, ._, ._ }, | 9482 | .{ ._, .p_, .xor, .tmp2x, .tmp2x, ._, ._ }, |
| 9486 | .{ ._, .p_w, .insr, .tmp1x, .memia(.src0w, .tmp0, .add_size), .ui(0), ._ }, | 9483 | .{ ._, .p_w, .insr, .tmp1x, .memia(.src0w, .tmp0, .add_size), .ui(0), ._ }, |
| ... | @@ -9488,7 +9485,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -9488,7 +9485,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 9488 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, | 9485 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 9489 | .{ ._, .p_w, .extr, .tmp4d, .tmp1x, .ui(0), ._ }, | 9486 | .{ ._, .p_w, .extr, .tmp4d, .tmp1x, .ui(0), ._ }, |
| 9490 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_size), .tmp4w, ._, ._ }, | 9487 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_size), .tmp4w, ._, ._ }, |
| 9491 | .{ ._, ._, .add, .tmp0q, .si(2), ._, ._ }, | 9488 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 9492 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 9489 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 9493 | } }, | 9490 | } }, |
| 9494 | }, .{ | 9491 | }, .{ |
| ... | @@ -9503,7 +9500,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -9503,7 +9500,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 9503 | .call_frame = .{ .alignment = .@"16" }, | 9500 | .call_frame = .{ .alignment = .@"16" }, |
| 9504 | .extra_temps = .{ | 9501 | .extra_temps = .{ |
| 9505 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 9502 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 9506 | .{ .type = .f16, .kind = .{ .reg = .eax } }, | 9503 | .{ .type = .f16, .kind = .{ .reg = .ax } }, |
| 9507 | .{ .type = .f32, .kind = .mem }, | 9504 | .{ .type = .f32, .kind = .mem }, |
| 9508 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | 9505 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 9509 | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, | 9506 | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| ... | @@ -9515,7 +9512,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -9515,7 +9512,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 9515 | .dst_temps = .{.mem}, | 9512 | .dst_temps = .{.mem}, |
| 9516 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 9513 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 9517 | .each = .{ .once = &.{ | 9514 | .each = .{ .once = &.{ |
| 9518 | .{ ._, ._, .mov, .tmp0q, .sa(.src0, .sub_size), ._, ._ }, | 9515 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 9519 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_size), ._, ._ }, | 9516 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_size), ._, ._ }, |
| 9520 | .{ ._, ._, .mov, .mem(.tmp2d), .tmp1d, ._, ._ }, | 9517 | .{ ._, ._, .mov, .mem(.tmp2d), .tmp1d, ._, ._ }, |
| 9521 | .{ ._, ._ss, .mov, .tmp3x, .mem(.tmp2d), ._, ._ }, | 9518 | .{ ._, ._ss, .mov, .tmp3x, .mem(.tmp2d), ._, ._ }, |
| ... | @@ -9526,7 +9523,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -9526,7 +9523,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 9526 | .{ ._, ._ss, .mov, .mem(.tmp2d), .tmp3x, ._, ._ }, | 9523 | .{ ._, ._ss, .mov, .mem(.tmp2d), .tmp3x, ._, ._ }, |
| 9527 | .{ ._, ._, .mov, .tmp1d, .mem(.tmp2d), ._, ._ }, | 9524 | .{ ._, ._, .mov, .tmp1d, .mem(.tmp2d), ._, ._ }, |
| 9528 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_size), .tmp1w, ._, ._ }, | 9525 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_size), .tmp1w, ._, ._ }, |
| 9529 | .{ ._, ._, .add, .tmp0q, .si(2), ._, ._ }, | 9526 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 9530 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 9527 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 9531 | } }, | 9528 | } }, |
| 9532 | }, .{ | 9529 | }, .{ |
| ... | @@ -9724,14 +9721,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -9724,14 +9721,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 9724 | .dst_temps = .{.mem}, | 9721 | .dst_temps = .{.mem}, |
| 9725 | .clobbers = .{ .eflags = true }, | 9722 | .clobbers = .{ .eflags = true }, |
| 9726 | .each = .{ .once = &.{ | 9723 | .each = .{ .once = &.{ |
| 9727 | .{ ._, ._, .mov, .tmp0q, .sa(.src0, .sub_size), ._, ._ }, | 9724 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 9728 | .{ .@"0:", .v_ps, .mova, .tmp1y, .memia(.src0y, .tmp0, .add_size), ._, ._ }, | 9725 | .{ .@"0:", .v_ps, .mova, .tmp1y, .memia(.src0y, .tmp0, .add_size), ._, ._ }, |
| 9729 | .{ ._, .v_ps, .mova, .tmp2y, .memia(.src1y, .tmp0, .add_size), ._, ._ }, | 9726 | .{ ._, .v_ps, .mova, .tmp2y, .memia(.src1y, .tmp0, .add_size), ._, ._ }, |
| 9730 | .{ ._, .v_ps, .cmp, .tmp3y, .tmp1y, .tmp1y, .vp(.unord) }, | 9727 | .{ ._, .v_ps, .cmp, .tmp3y, .tmp1y, .tmp1y, .vp(.unord) }, |
| 9731 | .{ ._, .v_ps, .min, .tmp1y, .tmp2y, .tmp1y, ._ }, | 9728 | .{ ._, .v_ps, .min, .tmp1y, .tmp2y, .tmp1y, ._ }, |
| 9732 | .{ ._, .v_ps, .blendv, .tmp1y, .tmp1y, .tmp2y, .tmp3y }, | 9729 | .{ ._, .v_ps, .blendv, .tmp1y, .tmp1y, .tmp2y, .tmp3y }, |
| 9733 | .{ ._, .v_ps, .mova, .memia(.dst0y, .tmp0, .add_size), .tmp1y, ._, ._ }, | 9730 | .{ ._, .v_ps, .mova, .memia(.dst0y, .tmp0, .add_size), .tmp1y, ._, ._ }, |
| 9734 | .{ ._, ._, .add, .tmp0q, .si(32), ._, ._ }, | 9731 | .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, |
| 9735 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 9732 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 9736 | } }, | 9733 | } }, |
| 9737 | }, .{ | 9734 | }, .{ |
| ... | @@ -9757,7 +9754,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -9757,7 +9754,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 9757 | .dst_temps = .{.mem}, | 9754 | .dst_temps = .{.mem}, |
| 9758 | .clobbers = .{ .eflags = true }, | 9755 | .clobbers = .{ .eflags = true }, |
| 9759 | .each = .{ .once = &.{ | 9756 | .each = .{ .once = &.{ |
| 9760 | .{ ._, ._, .mov, .tmp0q, .sa(.src0, .sub_size), ._, ._ }, | 9757 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 9761 | .{ .@"0:", ._ps, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, | 9758 | .{ .@"0:", ._ps, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, |
| 9762 | .{ ._, ._ps, .mova, .tmp2x, .memia(.src1x, .tmp0, .add_size), ._, ._ }, | 9759 | .{ ._, ._ps, .mova, .tmp2x, .memia(.src1x, .tmp0, .add_size), ._, ._ }, |
| 9763 | .{ ._, ._ps, .mova, .tmp3x, .tmp2x, ._, ._ }, | 9760 | .{ ._, ._ps, .mova, .tmp3x, .tmp2x, ._, ._ }, |
| ... | @@ -9765,7 +9762,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -9765,7 +9762,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 9765 | .{ ._, ._ps, .cmp, .tmp1x, .tmp1x, .vp(.unord), ._ }, | 9762 | .{ ._, ._ps, .cmp, .tmp1x, .tmp1x, .vp(.unord), ._ }, |
| 9766 | .{ ._, ._ps, .blendv, .tmp3x, .tmp2x, .tmp1x, ._ }, | 9763 | .{ ._, ._ps, .blendv, .tmp3x, .tmp2x, .tmp1x, ._ }, |
| 9767 | .{ ._, ._ps, .mova, .memia(.dst0x, .tmp0, .add_size), .tmp3x, ._, ._ }, | 9764 | .{ ._, ._ps, .mova, .memia(.dst0x, .tmp0, .add_size), .tmp3x, ._, ._ }, |
| 9768 | .{ ._, ._, .add, .tmp0q, .si(16), ._, ._ }, | 9765 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 9769 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 9766 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 9770 | } }, | 9767 | } }, |
| 9771 | }, .{ | 9768 | }, .{ |
| ... | @@ -9791,7 +9788,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -9791,7 +9788,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 9791 | .dst_temps = .{.mem}, | 9788 | .dst_temps = .{.mem}, |
| 9792 | .clobbers = .{ .eflags = true }, | 9789 | .clobbers = .{ .eflags = true }, |
| 9793 | .each = .{ .once = &.{ | 9790 | .each = .{ .once = &.{ |
| 9794 | .{ ._, ._, .mov, .tmp0q, .sa(.src0, .sub_size), ._, ._ }, | 9791 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 9795 | .{ .@"0:", ._ps, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, | 9792 | .{ .@"0:", ._ps, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, |
| 9796 | .{ ._, ._ps, .mova, .tmp2x, .memia(.src1x, .tmp0, .add_size), ._, ._ }, | 9793 | .{ ._, ._ps, .mova, .tmp2x, .memia(.src1x, .tmp0, .add_size), ._, ._ }, |
| 9797 | .{ ._, ._ps, .mova, .tmp3x, .tmp2x, ._, ._ }, | 9794 | .{ ._, ._ps, .mova, .tmp3x, .tmp2x, ._, ._ }, |
| ... | @@ -9801,7 +9798,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -9801,7 +9798,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 9801 | .{ ._, ._ps, .andn, .tmp1x, .tmp2x, ._, ._ }, | 9798 | .{ ._, ._ps, .andn, .tmp1x, .tmp2x, ._, ._ }, |
| 9802 | .{ ._, ._ps, .@"or", .tmp1x, .tmp3x, ._, ._ }, | 9799 | .{ ._, ._ps, .@"or", .tmp1x, .tmp3x, ._, ._ }, |
| 9803 | .{ ._, ._ps, .mova, .memia(.dst0x, .tmp0, .add_size), .tmp1x, ._, ._ }, | 9800 | .{ ._, ._ps, .mova, .memia(.dst0x, .tmp0, .add_size), .tmp1x, ._, ._ }, |
| 9804 | .{ ._, ._, .add, .tmp0q, .si(16), ._, ._ }, | 9801 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 9805 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 9802 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 9806 | } }, | 9803 | } }, |
| 9807 | }, .{ | 9804 | }, .{ |
| ... | @@ -10025,14 +10022,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -10025,14 +10022,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 10025 | .dst_temps = .{.mem}, | 10022 | .dst_temps = .{.mem}, |
| 10026 | .clobbers = .{ .eflags = true }, | 10023 | .clobbers = .{ .eflags = true }, |
| 10027 | .each = .{ .once = &.{ | 10024 | .each = .{ .once = &.{ |
| 10028 | .{ ._, ._, .mov, .tmp0q, .sa(.src0, .sub_size), ._, ._ }, | 10025 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 10029 | .{ .@"0:", .v_pd, .mova, .tmp1y, .memia(.src0y, .tmp0, .add_size), ._, ._ }, | 10026 | .{ .@"0:", .v_pd, .mova, .tmp1y, .memia(.src0y, .tmp0, .add_size), ._, ._ }, |
| 10030 | .{ ._, .v_pd, .mova, .tmp2y, .memia(.src1y, .tmp0, .add_size), ._, ._ }, | 10027 | .{ ._, .v_pd, .mova, .tmp2y, .memia(.src1y, .tmp0, .add_size), ._, ._ }, |
| 10031 | .{ ._, .v_pd, .cmp, .tmp3y, .tmp1y, .tmp1y, .vp(.unord) }, | 10028 | .{ ._, .v_pd, .cmp, .tmp3y, .tmp1y, .tmp1y, .vp(.unord) }, |
| 10032 | .{ ._, .v_pd, .min, .tmp1y, .tmp2y, .tmp1y, ._ }, | 10029 | .{ ._, .v_pd, .min, .tmp1y, .tmp2y, .tmp1y, ._ }, |
| 10033 | .{ ._, .v_pd, .blendv, .tmp1y, .tmp1y, .tmp2y, .tmp3y }, | 10030 | .{ ._, .v_pd, .blendv, .tmp1y, .tmp1y, .tmp2y, .tmp3y }, |
| 10034 | .{ ._, .v_pd, .mova, .memia(.dst0y, .tmp0, .add_size), .tmp1y, ._, ._ }, | 10031 | .{ ._, .v_pd, .mova, .memia(.dst0y, .tmp0, .add_size), .tmp1y, ._, ._ }, |
| 10035 | .{ ._, ._, .add, .tmp0q, .si(32), ._, ._ }, | 10032 | .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, |
| 10036 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 10033 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 10037 | } }, | 10034 | } }, |
| 10038 | }, .{ | 10035 | }, .{ |
| ... | @@ -10058,7 +10055,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -10058,7 +10055,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 10058 | .dst_temps = .{.mem}, | 10055 | .dst_temps = .{.mem}, |
| 10059 | .clobbers = .{ .eflags = true }, | 10056 | .clobbers = .{ .eflags = true }, |
| 10060 | .each = .{ .once = &.{ | 10057 | .each = .{ .once = &.{ |
| 10061 | .{ ._, ._, .mov, .tmp0q, .sa(.src0, .sub_size), ._, ._ }, | 10058 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 10062 | .{ .@"0:", ._pd, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, | 10059 | .{ .@"0:", ._pd, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, |
| 10063 | .{ ._, ._pd, .mova, .tmp2x, .memia(.src1x, .tmp0, .add_size), ._, ._ }, | 10060 | .{ ._, ._pd, .mova, .tmp2x, .memia(.src1x, .tmp0, .add_size), ._, ._ }, |
| 10064 | .{ ._, ._pd, .mova, .tmp3x, .tmp2x, ._, ._ }, | 10061 | .{ ._, ._pd, .mova, .tmp3x, .tmp2x, ._, ._ }, |
| ... | @@ -10066,7 +10063,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -10066,7 +10063,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 10066 | .{ ._, ._pd, .cmp, .tmp1x, .tmp1x, .vp(.unord), ._ }, | 10063 | .{ ._, ._pd, .cmp, .tmp1x, .tmp1x, .vp(.unord), ._ }, |
| 10067 | .{ ._, ._pd, .blendv, .tmp3x, .tmp2x, .tmp1x, ._ }, | 10064 | .{ ._, ._pd, .blendv, .tmp3x, .tmp2x, .tmp1x, ._ }, |
| 10068 | .{ ._, ._pd, .mova, .memia(.dst0x, .tmp0, .add_size), .tmp3x, ._, ._ }, | 10065 | .{ ._, ._pd, .mova, .memia(.dst0x, .tmp0, .add_size), .tmp3x, ._, ._ }, |
| 10069 | .{ ._, ._, .add, .tmp0q, .si(16), ._, ._ }, | 10066 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 10070 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 10067 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 10071 | } }, | 10068 | } }, |
| 10072 | }, .{ | 10069 | }, .{ |
| ... | @@ -10092,7 +10089,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -10092,7 +10089,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 10092 | .dst_temps = .{.mem}, | 10089 | .dst_temps = .{.mem}, |
| 10093 | .clobbers = .{ .eflags = true }, | 10090 | .clobbers = .{ .eflags = true }, |
| 10094 | .each = .{ .once = &.{ | 10091 | .each = .{ .once = &.{ |
| 10095 | .{ ._, ._, .mov, .tmp0q, .sa(.src0, .sub_size), ._, ._ }, | 10092 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 10096 | .{ .@"0:", ._pd, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, | 10093 | .{ .@"0:", ._pd, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, |
| 10097 | .{ ._, ._pd, .mova, .tmp2x, .memia(.src1x, .tmp0, .add_size), ._, ._ }, | 10094 | .{ ._, ._pd, .mova, .tmp2x, .memia(.src1x, .tmp0, .add_size), ._, ._ }, |
| 10098 | .{ ._, ._pd, .mova, .tmp3x, .tmp2x, ._, ._ }, | 10095 | .{ ._, ._pd, .mova, .tmp3x, .tmp2x, ._, ._ }, |
| ... | @@ -10102,7 +10099,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -10102,7 +10099,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 10102 | .{ ._, ._pd, .andn, .tmp1x, .tmp2x, ._, ._ }, | 10099 | .{ ._, ._pd, .andn, .tmp1x, .tmp2x, ._, ._ }, |
| 10103 | .{ ._, ._pd, .@"or", .tmp1x, .tmp3x, ._, ._ }, | 10100 | .{ ._, ._pd, .@"or", .tmp1x, .tmp3x, ._, ._ }, |
| 10104 | .{ ._, ._pd, .mova, .memia(.dst0x, .tmp0, .add_size), .tmp1x, ._, ._ }, | 10101 | .{ ._, ._pd, .mova, .memia(.dst0x, .tmp0, .add_size), .tmp1x, ._, ._ }, |
| 10105 | .{ ._, ._, .add, .tmp0q, .si(16), ._, ._ }, | 10102 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 10106 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 10103 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 10107 | } }, | 10104 | } }, |
| 10108 | }, .{ | 10105 | }, .{ |
| ... | @@ -10129,14 +10126,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -10129,14 +10126,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 10129 | .dst_temps = .{.mem}, | 10126 | .dst_temps = .{.mem}, |
| 10130 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 10127 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 10131 | .each = .{ .once = &.{ | 10128 | .each = .{ .once = &.{ |
| 10132 | .{ ._, ._, .mov, .tmp0q, .sa(.src0, .sub_size), ._, ._ }, | 10129 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 10133 | .{ .@"0:", ._ps, .xor, .tmp1x, .tmp1x, ._, ._ }, | 10130 | .{ .@"0:", ._ps, .xor, .tmp1x, .tmp1x, ._, ._ }, |
| 10134 | .{ ._, ._ps, .xor, .tmp2x, .tmp2x, ._, ._ }, | 10131 | .{ ._, ._ps, .xor, .tmp2x, .tmp2x, ._, ._ }, |
| 10135 | .{ ._, ._ps, .movl, .tmp1x, .memia(.src0q, .tmp0, .add_size), ._, ._ }, | 10132 | .{ ._, ._ps, .movl, .tmp1x, .memia(.src0q, .tmp0, .add_size), ._, ._ }, |
| 10136 | .{ ._, ._ps, .movl, .tmp2x, .memia(.src1q, .tmp0, .add_size), ._, ._ }, | 10133 | .{ ._, ._ps, .movl, .tmp2x, .memia(.src1q, .tmp0, .add_size), ._, ._ }, |
| 10137 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, | 10134 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 10138 | .{ ._, ._ps, .movl, .memia(.dst0q, .tmp0, .add_size), .tmp1q, ._, ._ }, | 10135 | .{ ._, ._ps, .movl, .memia(.dst0q, .tmp0, .add_size), .tmp1q, ._, ._ }, |
| 10139 | .{ ._, ._, .add, .tmp0q, .si(8), ._, ._ }, | 10136 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 10140 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 10137 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 10141 | } }, | 10138 | } }, |
| 10142 | }, .{ | 10139 | }, .{ |
| ... | @@ -10414,12 +10411,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -10414,12 +10411,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 10414 | .dst_temps = .{.mem}, | 10411 | .dst_temps = .{.mem}, |
| 10415 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 10412 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 10416 | .each = .{ .once = &.{ | 10413 | .each = .{ .once = &.{ |
| 10417 | .{ ._, ._, .mov, .tmp0q, .sa(.src0, .sub_size), ._, ._ }, | 10414 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 10418 | .{ .@"0:", .v_dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, | 10415 | .{ .@"0:", .v_dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, |
| 10419 | .{ ._, .v_dqa, .mov, .tmp2x, .memia(.src1x, .tmp0, .add_size), ._, ._ }, | 10416 | .{ ._, .v_dqa, .mov, .tmp2x, .memia(.src1x, .tmp0, .add_size), ._, ._ }, |
| 10420 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, | 10417 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 10421 | .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_size), .tmp1x, ._, ._ }, | 10418 | .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_size), .tmp1x, ._, ._ }, |
| 10422 | .{ ._, ._, .add, .tmp0q, .si(16), ._, ._ }, | 10419 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 10423 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 10420 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 10424 | } }, | 10421 | } }, |
| 10425 | }, .{ | 10422 | }, .{ |
| ... | @@ -10446,12 +10443,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -10446,12 +10443,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 10446 | .dst_temps = .{.mem}, | 10443 | .dst_temps = .{.mem}, |
| 10447 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 10444 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 10448 | .each = .{ .once = &.{ | 10445 | .each = .{ .once = &.{ |
| 10449 | .{ ._, ._, .mov, .tmp0q, .sa(.src0, .sub_size), ._, ._ }, | 10446 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 10450 | .{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, | 10447 | .{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, |
| 10451 | .{ ._, ._dqa, .mov, .tmp2x, .memia(.src1x, .tmp0, .add_size), ._, ._ }, | 10448 | .{ ._, ._dqa, .mov, .tmp2x, .memia(.src1x, .tmp0, .add_size), ._, ._ }, |
| 10452 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, | 10449 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 10453 | .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_size), .tmp1x, ._, ._ }, | 10450 | .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_size), .tmp1x, ._, ._ }, |
| 10454 | .{ ._, ._, .add, .tmp0q, .si(16), ._, ._ }, | 10451 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 10455 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 10452 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 10456 | } }, | 10453 | } }, |
| 10457 | }, .{ | 10454 | }, .{ |
| ... | @@ -10478,12 +10475,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -10478,12 +10475,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 10478 | .dst_temps = .{.mem}, | 10475 | .dst_temps = .{.mem}, |
| 10479 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 10476 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 10480 | .each = .{ .once = &.{ | 10477 | .each = .{ .once = &.{ |
| 10481 | .{ ._, ._, .mov, .tmp0q, .sa(.src0, .sub_size), ._, ._ }, | 10478 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 10482 | .{ .@"0:", ._ps, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, | 10479 | .{ .@"0:", ._ps, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, |
| 10483 | .{ ._, ._ps, .mova, .tmp2x, .memia(.src1x, .tmp0, .add_size), ._, ._ }, | 10480 | .{ ._, ._ps, .mova, .tmp2x, .memia(.src1x, .tmp0, .add_size), ._, ._ }, |
| 10484 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, | 10481 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 10485 | .{ ._, ._ps, .mova, .memia(.dst0x, .tmp0, .add_size), .tmp1x, ._, ._ }, | 10482 | .{ ._, ._ps, .mova, .memia(.dst0x, .tmp0, .add_size), .tmp1x, ._, ._ }, |
| 10486 | .{ ._, ._, .add, .tmp0q, .si(16), ._, ._ }, | 10483 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 10487 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 10484 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 10488 | } }, | 10485 | } }, |
| 10489 | } }) catch |err| switch (err) { | 10486 | } }) catch |err| switch (err) { |
| ... | @@ -10999,7 +10996,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -10999,7 +10996,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 10999 | .dst_temps = .{.{ .ref = .src0 }}, | 10996 | .dst_temps = .{.{ .ref = .src0 }}, |
| 11000 | .each = .{ .once = &.{ | 10997 | .each = .{ .once = &.{ |
| 11001 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, | 10998 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 11002 | .{ ._, .p_, .xor, .dst0q, .lea(.qword, .tmp0), ._, ._ }, | 10999 | .{ ._, .p_, .xor, .dst0q, .lea(.tmp0q), ._, ._ }, |
| 11003 | } }, | 11000 | } }, |
| 11004 | }, .{ | 11001 | }, .{ |
| 11005 | .required_features = .{ .avx, null, null, null }, | 11002 | .required_features = .{ .avx, null, null, null }, |
| ... | @@ -11033,7 +11030,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -11033,7 +11030,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 11033 | .dst_temps = .{.{ .rc = .sse }}, | 11030 | .dst_temps = .{.{ .rc = .sse }}, |
| 11034 | .each = .{ .once = &.{ | 11031 | .each = .{ .once = &.{ |
| 11035 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, | 11032 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 11036 | .{ ._, .vp_, .xor, .dst0x, .src0x, .lea(.xword, .tmp0), ._ }, | 11033 | .{ ._, .vp_, .xor, .dst0x, .src0x, .lea(.tmp0x), ._ }, |
| 11037 | } }, | 11034 | } }, |
| 11038 | }, .{ | 11035 | }, .{ |
| 11039 | .required_features = .{ .sse2, null, null, null }, | 11036 | .required_features = .{ .sse2, null, null, null }, |
| ... | @@ -11067,7 +11064,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -11067,7 +11064,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 11067 | .dst_temps = .{.{ .ref = .src0 }}, | 11064 | .dst_temps = .{.{ .ref = .src0 }}, |
| 11068 | .each = .{ .once = &.{ | 11065 | .each = .{ .once = &.{ |
| 11069 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, | 11066 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 11070 | .{ ._, .p_, .xor, .dst0x, .lea(.xword, .tmp0), ._, ._ }, | 11067 | .{ ._, .p_, .xor, .dst0x, .lea(.tmp0x), ._, ._ }, |
| 11071 | } }, | 11068 | } }, |
| 11072 | }, .{ | 11069 | }, .{ |
| 11073 | .required_features = .{ .sse, null, null, null }, | 11070 | .required_features = .{ .sse, null, null, null }, |
| ... | @@ -11089,7 +11086,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -11089,7 +11086,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 11089 | .dst_temps = .{.{ .ref = .src0 }}, | 11086 | .dst_temps = .{.{ .ref = .src0 }}, |
| 11090 | .each = .{ .once = &.{ | 11087 | .each = .{ .once = &.{ |
| 11091 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, | 11088 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 11092 | .{ ._, ._ps, .xor, .dst0x, .lea(.xword, .tmp0), ._, ._ }, | 11089 | .{ ._, ._ps, .xor, .dst0x, .lea(.tmp0x), ._, ._ }, |
| 11093 | } }, | 11090 | } }, |
| 11094 | }, .{ | 11091 | }, .{ |
| 11095 | .required_features = .{ .avx2, null, null, null }, | 11092 | .required_features = .{ .avx2, null, null, null }, |
| ... | @@ -11123,7 +11120,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -11123,7 +11120,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 11123 | .dst_temps = .{.{ .rc = .sse }}, | 11120 | .dst_temps = .{.{ .rc = .sse }}, |
| 11124 | .each = .{ .once = &.{ | 11121 | .each = .{ .once = &.{ |
| 11125 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, | 11122 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 11126 | .{ ._, .vp_, .xor, .dst0y, .src0y, .lea(.yword, .tmp0), ._ }, | 11123 | .{ ._, .vp_, .xor, .dst0y, .src0y, .lea(.tmp0y), ._ }, |
| 11127 | } }, | 11124 | } }, |
| 11128 | }, .{ | 11125 | }, .{ |
| 11129 | .required_features = .{ .avx, null, null, null }, | 11126 | .required_features = .{ .avx, null, null, null }, |
| ... | @@ -11157,7 +11154,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -11157,7 +11154,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 11157 | .dst_temps = .{.{ .rc = .sse }}, | 11154 | .dst_temps = .{.{ .rc = .sse }}, |
| 11158 | .each = .{ .once = &.{ | 11155 | .each = .{ .once = &.{ |
| 11159 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, | 11156 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 11160 | .{ ._, .v_pd, .xor, .dst0y, .src0y, .lea(.yword, .tmp0), ._ }, | 11157 | .{ ._, .v_pd, .xor, .dst0y, .src0y, .lea(.tmp0y), ._ }, |
| 11161 | } }, | 11158 | } }, |
| 11162 | }, .{ | 11159 | }, .{ |
| 11163 | .required_features = .{ .avx2, null, null, null }, | 11160 | .required_features = .{ .avx2, null, null, null }, |
| ... | @@ -11814,7 +11811,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -11814,7 +11811,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 11814 | .dst_temps = .{.{ .ref = .src0 }}, | 11811 | .dst_temps = .{.{ .ref = .src0 }}, |
| 11815 | .each = .{ .once = &.{ | 11812 | .each = .{ .once = &.{ |
| 11816 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, | 11813 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 11817 | .{ ._, .p_, .xor, .dst0q, .lea(.qword, .tmp0), ._, ._ }, | 11814 | .{ ._, .p_, .xor, .dst0q, .lea(.tmp0q), ._, ._ }, |
| 11818 | } }, | 11815 | } }, |
| 11819 | }, .{ | 11816 | }, .{ |
| 11820 | .required_features = .{ .avx, null, null, null }, | 11817 | .required_features = .{ .avx, null, null, null }, |
| ... | @@ -11848,7 +11845,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -11848,7 +11845,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 11848 | .dst_temps = .{.{ .rc = .sse }}, | 11845 | .dst_temps = .{.{ .rc = .sse }}, |
| 11849 | .each = .{ .once = &.{ | 11846 | .each = .{ .once = &.{ |
| 11850 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, | 11847 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 11851 | .{ ._, .vp_, .xor, .dst0x, .src0x, .lea(.xword, .tmp0), ._ }, | 11848 | .{ ._, .vp_, .xor, .dst0x, .src0x, .lea(.tmp0x), ._ }, |
| 11852 | } }, | 11849 | } }, |
| 11853 | }, .{ | 11850 | }, .{ |
| 11854 | .required_features = .{ .sse2, null, null, null }, | 11851 | .required_features = .{ .sse2, null, null, null }, |
| ... | @@ -11882,7 +11879,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -11882,7 +11879,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 11882 | .dst_temps = .{.{ .ref = .src0 }}, | 11879 | .dst_temps = .{.{ .ref = .src0 }}, |
| 11883 | .each = .{ .once = &.{ | 11880 | .each = .{ .once = &.{ |
| 11884 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, | 11881 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 11885 | .{ ._, .p_, .xor, .dst0x, .lea(.xword, .tmp0), ._, ._ }, | 11882 | .{ ._, .p_, .xor, .dst0x, .lea(.tmp0x), ._, ._ }, |
| 11886 | } }, | 11883 | } }, |
| 11887 | }, .{ | 11884 | }, .{ |
| 11888 | .required_features = .{ .sse, null, null, null }, | 11885 | .required_features = .{ .sse, null, null, null }, |
| ... | @@ -11904,7 +11901,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -11904,7 +11901,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 11904 | .dst_temps = .{.{ .ref = .src0 }}, | 11901 | .dst_temps = .{.{ .ref = .src0 }}, |
| 11905 | .each = .{ .once = &.{ | 11902 | .each = .{ .once = &.{ |
| 11906 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, | 11903 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 11907 | .{ ._, ._ps, .xor, .dst0x, .lea(.xword, .tmp0), ._, ._ }, | 11904 | .{ ._, ._ps, .xor, .dst0x, .lea(.tmp0x), ._, ._ }, |
| 11908 | } }, | 11905 | } }, |
| 11909 | }, .{ | 11906 | }, .{ |
| 11910 | .required_features = .{ .avx2, null, null, null }, | 11907 | .required_features = .{ .avx2, null, null, null }, |
| ... | @@ -11938,7 +11935,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -11938,7 +11935,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 11938 | .dst_temps = .{.{ .rc = .sse }}, | 11935 | .dst_temps = .{.{ .rc = .sse }}, |
| 11939 | .each = .{ .once = &.{ | 11936 | .each = .{ .once = &.{ |
| 11940 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, | 11937 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 11941 | .{ ._, .vp_, .xor, .dst0y, .src0y, .lea(.yword, .tmp0), ._ }, | 11938 | .{ ._, .vp_, .xor, .dst0y, .src0y, .lea(.tmp0y), ._ }, |
| 11942 | } }, | 11939 | } }, |
| 11943 | }, .{ | 11940 | }, .{ |
| 11944 | .required_features = .{ .avx, null, null, null }, | 11941 | .required_features = .{ .avx, null, null, null }, |
| ... | @@ -11972,7 +11969,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -11972,7 +11969,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 11972 | .dst_temps = .{.{ .rc = .sse }}, | 11969 | .dst_temps = .{.{ .rc = .sse }}, |
| 11973 | .each = .{ .once = &.{ | 11970 | .each = .{ .once = &.{ |
| 11974 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, | 11971 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 11975 | .{ ._, .v_pd, .xor, .dst0y, .src0y, .lea(.yword, .tmp0), ._ }, | 11972 | .{ ._, .v_pd, .xor, .dst0y, .src0y, .lea(.tmp0y), ._ }, |
| 11976 | } }, | 11973 | } }, |
| 11977 | }, .{ | 11974 | }, .{ |
| 11978 | .required_features = .{ .@"64bit", null, null, null }, | 11975 | .required_features = .{ .@"64bit", null, null, null }, |
| ... | @@ -11992,13 +11989,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -11992,13 +11989,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 11992 | }, | 11989 | }, |
| 11993 | .dst_temps = .{.mem}, | 11990 | .dst_temps = .{.mem}, |
| 11994 | .each = .{ .once = &.{ | 11991 | .each = .{ .once = &.{ |
| 11995 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_src0_unaligned_size), ._, ._ }, | 11992 | .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, |
| 11996 | .{ ._, ._, .lea, .tmp1p, .mem(.tmp3), ._, ._ }, | 11993 | .{ ._, ._, .lea, .tmp1p, .mem(.tmp3), ._, ._ }, |
| 11997 | .{ .@"0:", ._, .mov, .tmp2q, .memia(.src0q, .tmp0, .add_src0_unaligned_size), ._, ._ }, | 11994 | .{ .@"0:", ._, .mov, .tmp2q, .memi(.src0q, .tmp0), ._, ._ }, |
| 11998 | .{ ._, ._, .xor, .tmp2q, .leaia(.qword, .tmp1, .tmp0, .add_src0_unaligned_size), ._, ._ }, | 11995 | .{ ._, ._, .xor, .tmp2q, .leai(.tmp1q, .tmp0), ._, ._ }, |
| 11999 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_src0_unaligned_size), .tmp2q, ._, ._ }, | 11996 | .{ ._, ._, .mov, .memi(.dst0q, .tmp0), .tmp2q, ._, ._ }, |
| 12000 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | 11997 | .{ ._, ._, .lea, .tmp0d, .lead(.tmp0, 8), ._, ._ }, |
| 12001 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 11998 | .{ ._, ._, .cmp, .tmp0d, .sa(.src0, .add_unaligned_size), ._, ._ }, |
| 11999 | .{ ._, ._b, .j, .@"0b", ._, ._, ._ }, | ||
| 12002 | } }, | 12000 | } }, |
| 12003 | }, .{ | 12001 | }, .{ |
| 12004 | .patterns = &.{ | 12002 | .patterns = &.{ |
| ... | @@ -12017,13 +12015,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -12017,13 +12015,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 12017 | }, | 12015 | }, |
| 12018 | .dst_temps = .{.mem}, | 12016 | .dst_temps = .{.mem}, |
| 12019 | .each = .{ .once = &.{ | 12017 | .each = .{ .once = &.{ |
| 12020 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_src0_unaligned_size), ._, ._ }, | 12018 | .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, |
| 12021 | .{ ._, ._, .lea, .tmp1p, .mem(.tmp3), ._, ._ }, | 12019 | .{ ._, ._, .lea, .tmp1p, .mem(.tmp3), ._, ._ }, |
| 12022 | .{ .@"0:", ._, .mov, .tmp2d, .memia(.src0d, .tmp0, .add_src0_unaligned_size), ._, ._ }, | 12020 | .{ .@"0:", ._, .mov, .tmp2d, .memi(.src0d, .tmp0), ._, ._ }, |
| 12023 | .{ ._, ._, .xor, .tmp2d, .leaia(.dword, .tmp1, .tmp0, .add_src0_unaligned_size), ._, ._ }, | 12021 | .{ ._, ._, .xor, .tmp2d, .leai(.tmp1d, .tmp0), ._, ._ }, |
| 12024 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_src0_unaligned_size), .tmp2d, ._, ._ }, | 12022 | .{ ._, ._, .mov, .memi(.dst0d, .tmp0), .tmp2d, ._, ._ }, |
| 12025 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | 12023 | .{ ._, ._, .lea, .tmp0d, .lead(.tmp0, 4), ._, ._ }, |
| 12026 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 12024 | .{ ._, ._, .cmp, .tmp0d, .sa(.src0, .add_unaligned_size), ._, ._ }, |
| 12025 | .{ ._, ._b, .j, .@"0b", ._, ._, ._ }, | ||
| 12027 | } }, | 12026 | } }, |
| 12028 | } }) catch |err| switch (err) { | 12027 | } }) catch |err| switch (err) { |
| 12029 | error.SelectFailed => return cg.fail("failed to select {s} {} {}", .{ | 12028 | error.SelectFailed => return cg.fail("failed to select {s} {} {}", .{ |
| ... | @@ -13161,7 +13160,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -13161,7 +13160,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 13161 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 13160 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 13162 | .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, | 13161 | .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, |
| 13163 | .{ .@"0:", ._, .neg, .tmp0d, ._, ._, ._ }, | 13162 | .{ .@"0:", ._, .neg, .tmp0d, ._, ._, ._ }, |
| 13164 | .{ ._, ._, .lea, .dst0d, .leasiad(.none, .dst0, .@"8", .tmp0, .add_src0_bit_size, -64), ._, ._ }, | 13163 | .{ ._, ._, .lea, .dst0d, .leasiad(.dst0, .@"8", .tmp0, .add_src0_bit_size, -64), ._, ._ }, |
| 13165 | } }, | 13164 | } }, |
| 13166 | }, .{ | 13165 | }, .{ |
| 13167 | .required_features = .{ .@"64bit", .lzcnt, null, null }, | 13166 | .required_features = .{ .@"64bit", .lzcnt, null, null }, |
| ... | @@ -13190,7 +13189,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -13190,7 +13189,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 13190 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 13189 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 13191 | .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, | 13190 | .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, |
| 13192 | .{ .@"0:", ._, .neg, .tmp0d, ._, ._, ._ }, | 13191 | .{ .@"0:", ._, .neg, .tmp0d, ._, ._, ._ }, |
| 13193 | .{ ._, ._, .lea, .dst0d, .leasiad(.none, .dst0, .@"8", .tmp0, .add_src0_bit_size, -64), ._, ._ }, | 13192 | .{ ._, ._, .lea, .dst0d, .leasiad(.dst0, .@"8", .tmp0, .add_src0_bit_size, -64), ._, ._ }, |
| 13194 | } }, | 13193 | } }, |
| 13195 | }, .{ | 13194 | }, .{ |
| 13196 | .required_features = .{ .@"64bit", .bsf_bsr_0_clobbers_result, null, null }, | 13195 | .required_features = .{ .@"64bit", .bsf_bsr_0_clobbers_result, null, null }, |
| ... | @@ -13220,7 +13219,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -13220,7 +13219,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 13220 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 13219 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 13221 | .{ ._, ._, .mov, .dst0d, .si(-1), ._, ._ }, | 13220 | .{ ._, ._, .mov, .dst0d, .si(-1), ._, ._ }, |
| 13222 | .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, | 13221 | .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, |
| 13223 | .{ .@"0:", ._, .lea, .dst0d, .leasiad(.none, .dst0, .@"8", .tmp0, .sub_src0_bit_size, 1), ._, ._ }, | 13222 | .{ .@"0:", ._, .lea, .dst0d, .leasiad(.dst0, .@"8", .tmp0, .sub_src0_bit_size, 1), ._, ._ }, |
| 13224 | .{ ._, ._, .neg, .dst0d, ._, ._, ._ }, | 13223 | .{ ._, ._, .neg, .dst0d, ._, ._, ._ }, |
| 13225 | } }, | 13224 | } }, |
| 13226 | }, .{ | 13225 | }, .{ |
| ... | @@ -13250,7 +13249,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -13250,7 +13249,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 13250 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, | 13249 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 13251 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 13250 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 13252 | .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, | 13251 | .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, |
| 13253 | .{ .@"0:", ._, .lea, .dst0d, .leasiad(.none, .dst0, .@"8", .tmp0, .sub_src0_bit_size, 1), ._, ._ }, | 13252 | .{ .@"0:", ._, .lea, .dst0d, .leasiad(.dst0, .@"8", .tmp0, .sub_src0_bit_size, 1), ._, ._ }, |
| 13254 | .{ ._, ._, .neg, .dst0d, ._, ._, ._ }, | 13253 | .{ ._, ._, .neg, .dst0d, ._, ._, ._ }, |
| 13255 | } }, | 13254 | } }, |
| 13256 | }, .{ | 13255 | }, .{ |
| ... | @@ -13281,7 +13280,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -13281,7 +13280,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 13281 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 13280 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 13282 | .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, | 13281 | .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, |
| 13283 | .{ .@"0:", ._, .neg, .tmp0d, ._, ._, ._ }, | 13282 | .{ .@"0:", ._, .neg, .tmp0d, ._, ._, ._ }, |
| 13284 | .{ ._, ._, .lea, .dst0d, .leasiad(.none, .dst0, .@"8", .tmp0, .add_src0_bit_size, -64), ._, ._ }, | 13283 | .{ ._, ._, .lea, .dst0d, .leasiad(.dst0, .@"8", .tmp0, .add_src0_bit_size, -64), ._, ._ }, |
| 13285 | } }, | 13284 | } }, |
| 13286 | }, .{ | 13285 | }, .{ |
| 13287 | .required_features = .{ .@"64bit", .lzcnt, null, null }, | 13286 | .required_features = .{ .@"64bit", .lzcnt, null, null }, |
| ... | @@ -13310,7 +13309,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -13310,7 +13309,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 13310 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 13309 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 13311 | .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, | 13310 | .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, |
| 13312 | .{ .@"0:", ._, .neg, .tmp0d, ._, ._, ._ }, | 13311 | .{ .@"0:", ._, .neg, .tmp0d, ._, ._, ._ }, |
| 13313 | .{ ._, ._, .lea, .dst0d, .leasiad(.none, .dst0, .@"8", .tmp0, .add_src0_bit_size, -64), ._, ._ }, | 13312 | .{ ._, ._, .lea, .dst0d, .leasiad(.dst0, .@"8", .tmp0, .add_src0_bit_size, -64), ._, ._ }, |
| 13314 | } }, | 13313 | } }, |
| 13315 | }, .{ | 13314 | }, .{ |
| 13316 | .required_features = .{ .@"64bit", .bsf_bsr_0_clobbers_result, null, null }, | 13315 | .required_features = .{ .@"64bit", .bsf_bsr_0_clobbers_result, null, null }, |
| ... | @@ -13340,7 +13339,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -13340,7 +13339,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 13340 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 13339 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 13341 | .{ ._, ._, .mov, .dst0d, .si(-1), ._, ._ }, | 13340 | .{ ._, ._, .mov, .dst0d, .si(-1), ._, ._ }, |
| 13342 | .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, | 13341 | .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, |
| 13343 | .{ .@"0:", ._, .lea, .dst0d, .leasiad(.none, .dst0, .@"8", .tmp0, .sub_src0_bit_size, 1), ._, ._ }, | 13342 | .{ .@"0:", ._, .lea, .dst0d, .leasiad(.dst0, .@"8", .tmp0, .sub_src0_bit_size, 1), ._, ._ }, |
| 13344 | .{ ._, ._, .neg, .dst0d, ._, ._, ._ }, | 13343 | .{ ._, ._, .neg, .dst0d, ._, ._, ._ }, |
| 13345 | } }, | 13344 | } }, |
| 13346 | }, .{ | 13345 | }, .{ |
| ... | @@ -13370,7 +13369,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -13370,7 +13369,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 13370 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, | 13369 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 13371 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 13370 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 13372 | .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, | 13371 | .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, |
| 13373 | .{ .@"0:", ._, .lea, .dst0d, .leasiad(.none, .dst0, .@"8", .tmp0, .sub_src0_bit_size, 1), ._, ._ }, | 13372 | .{ .@"0:", ._, .lea, .dst0d, .leasiad(.dst0, .@"8", .tmp0, .sub_src0_bit_size, 1), ._, ._ }, |
| 13374 | .{ ._, ._, .neg, .dst0d, ._, ._, ._ }, | 13373 | .{ ._, ._, .neg, .dst0d, ._, ._, ._ }, |
| 13375 | } }, | 13374 | } }, |
| 13376 | }, .{ | 13375 | }, .{ |
| ... | @@ -13404,7 +13403,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -13404,7 +13403,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 13404 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 13403 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 13405 | .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, | 13404 | .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, |
| 13406 | .{ .@"0:", ._, .neg, .tmp0d, ._, ._, ._ }, | 13405 | .{ .@"0:", ._, .neg, .tmp0d, ._, ._, ._ }, |
| 13407 | .{ ._, ._, .lea, .dst0d, .leasiad(.none, .dst0, .@"8", .tmp0, .add_src0_bit_size, -64), ._, ._ }, | 13406 | .{ ._, ._, .lea, .dst0d, .leasiad(.dst0, .@"8", .tmp0, .add_src0_bit_size, -64), ._, ._ }, |
| 13408 | } }, | 13407 | } }, |
| 13409 | }, .{ | 13408 | }, .{ |
| 13410 | .required_features = .{ .@"64bit", .lzcnt, null, null }, | 13409 | .required_features = .{ .@"64bit", .lzcnt, null, null }, |
| ... | @@ -13436,7 +13435,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -13436,7 +13435,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 13436 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 13435 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 13437 | .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, | 13436 | .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, |
| 13438 | .{ .@"0:", ._, .neg, .tmp0d, ._, ._, ._ }, | 13437 | .{ .@"0:", ._, .neg, .tmp0d, ._, ._, ._ }, |
| 13439 | .{ ._, ._, .lea, .dst0d, .leasiad(.none, .dst0, .@"8", .tmp0, .add_src0_bit_size, -64), ._, ._ }, | 13438 | .{ ._, ._, .lea, .dst0d, .leasiad(.dst0, .@"8", .tmp0, .add_src0_bit_size, -64), ._, ._ }, |
| 13440 | } }, | 13439 | } }, |
| 13441 | }, .{ | 13440 | }, .{ |
| 13442 | .required_features = .{ .@"64bit", null, null, null }, | 13441 | .required_features = .{ .@"64bit", null, null, null }, |
| ... | @@ -13467,7 +13466,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -13467,7 +13466,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 13467 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, | 13466 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 13468 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 13467 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 13469 | .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, | 13468 | .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, |
| 13470 | .{ .@"0:", ._, .lea, .dst0d, .leasiad(.none, .dst0, .@"8", .tmp0, .sub_src0_bit_size, 1), ._, ._ }, | 13469 | .{ .@"0:", ._, .lea, .dst0d, .leasiad(.dst0, .@"8", .tmp0, .sub_src0_bit_size, 1), ._, ._ }, |
| 13471 | .{ ._, ._, .neg, .dst0d, ._, ._, ._ }, | 13470 | .{ ._, ._, .neg, .dst0d, ._, ._, ._ }, |
| 13472 | } }, | 13471 | } }, |
| 13473 | }, .{ | 13472 | }, .{ |
| ... | @@ -13501,7 +13500,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -13501,7 +13500,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 13501 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 13500 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 13502 | .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, | 13501 | .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, |
| 13503 | .{ .@"0:", ._, .neg, .tmp0d, ._, ._, ._ }, | 13502 | .{ .@"0:", ._, .neg, .tmp0d, ._, ._, ._ }, |
| 13504 | .{ ._, ._, .lea, .dst0d, .leasiad(.none, .dst0, .@"8", .tmp0, .add_src0_bit_size, -64), ._, ._ }, | 13503 | .{ ._, ._, .lea, .dst0d, .leasiad(.dst0, .@"8", .tmp0, .add_src0_bit_size, -64), ._, ._ }, |
| 13505 | } }, | 13504 | } }, |
| 13506 | }, .{ | 13505 | }, .{ |
| 13507 | .required_features = .{ .@"64bit", .lzcnt, null, null }, | 13506 | .required_features = .{ .@"64bit", .lzcnt, null, null }, |
| ... | @@ -13533,7 +13532,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -13533,7 +13532,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 13533 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 13532 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 13534 | .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, | 13533 | .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, |
| 13535 | .{ .@"0:", ._, .neg, .tmp0d, ._, ._, ._ }, | 13534 | .{ .@"0:", ._, .neg, .tmp0d, ._, ._, ._ }, |
| 13536 | .{ ._, ._, .lea, .dst0d, .leasiad(.none, .dst0, .@"8", .tmp0, .add_src0_bit_size, -64), ._, ._ }, | 13535 | .{ ._, ._, .lea, .dst0d, .leasiad(.dst0, .@"8", .tmp0, .add_src0_bit_size, -64), ._, ._ }, |
| 13537 | } }, | 13536 | } }, |
| 13538 | }, .{ | 13537 | }, .{ |
| 13539 | .required_features = .{ .@"64bit", null, null, null }, | 13538 | .required_features = .{ .@"64bit", null, null, null }, |
| ... | @@ -13564,7 +13563,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -13564,7 +13563,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 13564 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, | 13563 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 13565 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 13564 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 13566 | .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, | 13565 | .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, |
| 13567 | .{ .@"0:", ._, .lea, .dst0d, .leasiad(.none, .dst0, .@"8", .tmp0, .sub_src0_bit_size, 1), ._, ._ }, | 13566 | .{ .@"0:", ._, .lea, .dst0d, .leasiad(.dst0, .@"8", .tmp0, .sub_src0_bit_size, 1), ._, ._ }, |
| 13568 | .{ ._, ._, .neg, .dst0d, ._, ._, ._ }, | 13567 | .{ ._, ._, .neg, .dst0d, ._, ._, ._ }, |
| 13569 | } }, | 13568 | } }, |
| 13570 | }, .{ | 13569 | }, .{ |
| ... | @@ -14558,8 +14557,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -14558,8 +14557,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 14558 | } }, | 14557 | } }, |
| 14559 | }, .{ | 14558 | }, .{ |
| 14560 | .required_features = .{ .@"64bit", .false_deps_lzcnt_tzcnt, .lzcnt, null }, | 14559 | .required_features = .{ .@"64bit", .false_deps_lzcnt_tzcnt, .lzcnt, null }, |
| 14561 | .dst_constraints = .{.{ .scalar_int_is = .byte }}, | ||
| 14562 | .src_constraints = .{ .{ .scalar_remainder_int = .{ .of = .xword, .is = .qword } }, .any }, | 14560 | .src_constraints = .{ .{ .scalar_remainder_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 14561 | .dst_constraints = .{.{ .scalar_int_is = .byte }}, | ||
| 14563 | .patterns = &.{ | 14562 | .patterns = &.{ |
| 14564 | .{ .src = .{ .to_mem, .none } }, | 14563 | .{ .src = .{ .to_mem, .none } }, |
| 14565 | }, | 14564 | }, |
| ... | @@ -14581,7 +14580,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -14581,7 +14580,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 14581 | .{ ._, ._, .lea, .tmp1q, .mem(.src0), ._, ._ }, | 14580 | .{ ._, ._, .lea, .tmp1q, .mem(.src0), ._, ._ }, |
| 14582 | .{ .@"0:", ._, .mov, .tmp2d, .sia(-16, .none, .add_src0_elem_size), ._, ._ }, | 14581 | .{ .@"0:", ._, .mov, .tmp2d, .sia(-16, .none, .add_src0_elem_size), ._, ._ }, |
| 14583 | .{ ._, ._, .mov, .tmp3q, .ua(.src0, .add_umax), ._, ._ }, | 14582 | .{ ._, ._, .mov, .tmp3q, .ua(.src0, .add_umax), ._, ._ }, |
| 14584 | .{ .@"1:", ._, .@"and", .tmp3q, .leai(.qword, .tmp1, .tmp2), ._, ._ }, | 14583 | .{ .@"1:", ._, .@"and", .tmp3q, .leai(.tmp1q, .tmp2), ._, ._ }, |
| 14585 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, | 14584 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| 14586 | .{ ._, ._, .lzcnt, .tmp4q, .tmp3q, ._, ._ }, | 14585 | .{ ._, ._, .lzcnt, .tmp4q, .tmp3q, ._, ._ }, |
| 14587 | .{ ._, ._nc, .j, .@"1f", ._, ._, ._ }, | 14586 | .{ ._, ._nc, .j, .@"1f", ._, ._, ._ }, |
| ... | @@ -14590,16 +14589,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -14590,16 +14589,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 14590 | .{ ._, ._nc, .j, .@"1b", ._, ._, ._ }, | 14589 | .{ ._, ._nc, .j, .@"1b", ._, ._, ._ }, |
| 14591 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, | 14590 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, |
| 14592 | .{ .@"1:", ._, .neg, .tmp2d, ._, ._, ._ }, | 14591 | .{ .@"1:", ._, .neg, .tmp2d, ._, ._, ._ }, |
| 14593 | .{ ._, ._, .lea, .tmp3d, .leasiad(.none, .tmp4, .@"8", .tmp2, .add_src0_bit_size, -64), ._, ._ }, | 14592 | .{ ._, ._, .lea, .tmp3d, .leasiad(.tmp4, .@"8", .tmp2, .add_src0_bit_size, -64), ._, ._ }, |
| 14594 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_len), .tmp3b, ._, ._ }, | 14593 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_len), .tmp3b, ._, ._ }, |
| 14595 | .{ ._, ._, .lea, .tmp1q, .leaa(.none, .tmp1, .add_src0_elem_size), ._, ._ }, | 14594 | .{ ._, ._, .lea, .tmp1q, .leaa(.tmp1, .add_src0_elem_size), ._, ._ }, |
| 14596 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, | 14595 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 14597 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 14596 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 14598 | } }, | 14597 | } }, |
| 14599 | }, .{ | 14598 | }, .{ |
| 14600 | .required_features = .{ .@"64bit", .lzcnt, null, null }, | 14599 | .required_features = .{ .@"64bit", .lzcnt, null, null }, |
| 14601 | .dst_constraints = .{.{ .scalar_int_is = .byte }}, | ||
| 14602 | .src_constraints = .{ .{ .scalar_remainder_int = .{ .of = .xword, .is = .qword } }, .any }, | 14600 | .src_constraints = .{ .{ .scalar_remainder_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 14601 | .dst_constraints = .{.{ .scalar_int_is = .byte }}, | ||
| 14603 | .patterns = &.{ | 14602 | .patterns = &.{ |
| 14604 | .{ .src = .{ .to_mem, .none } }, | 14603 | .{ .src = .{ .to_mem, .none } }, |
| 14605 | }, | 14604 | }, |
| ... | @@ -14621,7 +14620,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -14621,7 +14620,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 14621 | .{ ._, ._, .lea, .tmp1q, .mem(.src0), ._, ._ }, | 14620 | .{ ._, ._, .lea, .tmp1q, .mem(.src0), ._, ._ }, |
| 14622 | .{ .@"0:", ._, .mov, .tmp2d, .sia(-16, .none, .add_src0_elem_size), ._, ._ }, | 14621 | .{ .@"0:", ._, .mov, .tmp2d, .sia(-16, .none, .add_src0_elem_size), ._, ._ }, |
| 14623 | .{ ._, ._, .mov, .tmp3q, .ua(.src0, .add_umax), ._, ._ }, | 14622 | .{ ._, ._, .mov, .tmp3q, .ua(.src0, .add_umax), ._, ._ }, |
| 14624 | .{ .@"1:", ._, .@"and", .tmp3q, .leai(.qword, .tmp1, .tmp2), ._, ._ }, | 14623 | .{ .@"1:", ._, .@"and", .tmp3q, .leai(.tmp1q, .tmp2), ._, ._ }, |
| 14625 | .{ ._, ._, .lzcnt, .tmp4q, .tmp3q, ._, ._ }, | 14624 | .{ ._, ._, .lzcnt, .tmp4q, .tmp3q, ._, ._ }, |
| 14626 | .{ ._, ._nc, .j, .@"1f", ._, ._, ._ }, | 14625 | .{ ._, ._nc, .j, .@"1f", ._, ._, ._ }, |
| 14627 | .{ ._, ._, .mov, .tmp3q, .si(-1), ._, ._ }, | 14626 | .{ ._, ._, .mov, .tmp3q, .si(-1), ._, ._ }, |
| ... | @@ -14629,16 +14628,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -14629,16 +14628,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 14629 | .{ ._, ._nc, .j, .@"1b", ._, ._, ._ }, | 14628 | .{ ._, ._nc, .j, .@"1b", ._, ._, ._ }, |
| 14630 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, | 14629 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, |
| 14631 | .{ .@"1:", ._, .neg, .tmp2d, ._, ._, ._ }, | 14630 | .{ .@"1:", ._, .neg, .tmp2d, ._, ._, ._ }, |
| 14632 | .{ ._, ._, .lea, .tmp3d, .leasiad(.none, .tmp4, .@"8", .tmp2, .add_src0_bit_size, -64), ._, ._ }, | 14631 | .{ ._, ._, .lea, .tmp3d, .leasiad(.tmp4, .@"8", .tmp2, .add_src0_bit_size, -64), ._, ._ }, |
| 14633 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_len), .tmp3b, ._, ._ }, | 14632 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_len), .tmp3b, ._, ._ }, |
| 14634 | .{ ._, ._, .lea, .tmp1q, .leaa(.none, .tmp1, .add_src0_elem_size), ._, ._ }, | 14633 | .{ ._, ._, .lea, .tmp1q, .leaa(.tmp1, .add_src0_elem_size), ._, ._ }, |
| 14635 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, | 14634 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 14636 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 14635 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 14637 | } }, | 14636 | } }, |
| 14638 | }, .{ | 14637 | }, .{ |
| 14639 | .required_features = .{ .@"64bit", null, null, null }, | 14638 | .required_features = .{ .@"64bit", null, null, null }, |
| 14640 | .dst_constraints = .{.{ .scalar_int_is = .byte }}, | ||
| 14641 | .src_constraints = .{ .{ .scalar_remainder_int = .{ .of = .xword, .is = .qword } }, .any }, | 14639 | .src_constraints = .{ .{ .scalar_remainder_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 14640 | .dst_constraints = .{.{ .scalar_int_is = .byte }}, | ||
| 14642 | .patterns = &.{ | 14641 | .patterns = &.{ |
| 14643 | .{ .src = .{ .to_mem, .none } }, | 14642 | .{ .src = .{ .to_mem, .none } }, |
| 14644 | }, | 14643 | }, |
| ... | @@ -14660,24 +14659,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -14660,24 +14659,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 14660 | .{ ._, ._, .lea, .tmp1q, .mem(.src0), ._, ._ }, | 14659 | .{ ._, ._, .lea, .tmp1q, .mem(.src0), ._, ._ }, |
| 14661 | .{ .@"0:", ._, .mov, .tmp2d, .sia(-16, .none, .add_src0_elem_size), ._, ._ }, | 14660 | .{ .@"0:", ._, .mov, .tmp2d, .sia(-16, .none, .add_src0_elem_size), ._, ._ }, |
| 14662 | .{ ._, ._, .mov, .tmp3q, .ua(.src0, .add_umax), ._, ._ }, | 14661 | .{ ._, ._, .mov, .tmp3q, .ua(.src0, .add_umax), ._, ._ }, |
| 14663 | .{ .@"1:", ._, .@"and", .tmp3q, .leai(.qword, .tmp1, .tmp2), ._, ._ }, | 14662 | .{ .@"1:", ._, .@"and", .tmp3q, .leai(.tmp1q, .tmp2), ._, ._ }, |
| 14664 | .{ ._, ._r, .bs, .tmp3q, .tmp3q, ._, ._ }, | 14663 | .{ ._, ._r, .bs, .tmp3q, .tmp3q, ._, ._ }, |
| 14665 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, | 14664 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, |
| 14666 | .{ ._, ._, .mov, .tmp3q, .si(-1), ._, ._ }, | 14665 | .{ ._, ._, .mov, .tmp3q, .si(-1), ._, ._ }, |
| 14667 | .{ ._, ._, .sub, .tmp2d, .si(8), ._, ._ }, | 14666 | .{ ._, ._, .sub, .tmp2d, .si(8), ._, ._ }, |
| 14668 | .{ ._, ._nc, .j, .@"1b", ._, ._, ._ }, | 14667 | .{ ._, ._nc, .j, .@"1b", ._, ._, ._ }, |
| 14669 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, | 14668 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, |
| 14670 | .{ .@"1:", ._, .lea, .tmp3d, .leasiad(.none, .tmp3, .@"8", .tmp2, .sub_src0_bit_size, 1), ._, ._ }, | 14669 | .{ .@"1:", ._, .lea, .tmp3d, .leasiad(.tmp3, .@"8", .tmp2, .sub_src0_bit_size, 1), ._, ._ }, |
| 14671 | .{ ._, ._, .neg, .tmp3b, ._, ._, ._ }, | 14670 | .{ ._, ._, .neg, .tmp3b, ._, ._, ._ }, |
| 14672 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_len), .tmp3b, ._, ._ }, | 14671 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_len), .tmp3b, ._, ._ }, |
| 14673 | .{ ._, ._, .lea, .tmp1q, .leaa(.none, .tmp1, .add_src0_elem_size), ._, ._ }, | 14672 | .{ ._, ._, .lea, .tmp1q, .leaa(.tmp1, .add_src0_elem_size), ._, ._ }, |
| 14674 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, | 14673 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 14675 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 14674 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 14676 | } }, | 14675 | } }, |
| 14677 | }, .{ | 14676 | }, .{ |
| 14678 | .required_features = .{ .@"64bit", .false_deps_lzcnt_tzcnt, .lzcnt, null }, | 14677 | .required_features = .{ .@"64bit", .false_deps_lzcnt_tzcnt, .lzcnt, null }, |
| 14679 | .dst_constraints = .{.{ .scalar_int_is = .byte }}, | ||
| 14680 | .src_constraints = .{ .{ .scalar_remainder_int = .{ .of = .xword, .is = .xword } }, .any }, | 14678 | .src_constraints = .{ .{ .scalar_remainder_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 14679 | .dst_constraints = .{.{ .scalar_int_is = .byte }}, | ||
| 14681 | .patterns = &.{ | 14680 | .patterns = &.{ |
| 14682 | .{ .src = .{ .to_mem, .none } }, | 14681 | .{ .src = .{ .to_mem, .none } }, |
| 14683 | }, | 14682 | }, |
| ... | @@ -14699,7 +14698,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -14699,7 +14698,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 14699 | .{ ._, ._, .lea, .tmp1q, .mem(.src0), ._, ._ }, | 14698 | .{ ._, ._, .lea, .tmp1q, .mem(.src0), ._, ._ }, |
| 14700 | .{ .@"0:", ._, .mov, .tmp2d, .sia(-8, .none, .add_src0_elem_size), ._, ._ }, | 14699 | .{ .@"0:", ._, .mov, .tmp2d, .sia(-8, .none, .add_src0_elem_size), ._, ._ }, |
| 14701 | .{ ._, ._, .mov, .tmp3q, .ua(.src0, .add_umax), ._, ._ }, | 14700 | .{ ._, ._, .mov, .tmp3q, .ua(.src0, .add_umax), ._, ._ }, |
| 14702 | .{ .@"1:", ._, .@"and", .tmp3q, .leai(.qword, .tmp1, .tmp2), ._, ._ }, | 14701 | .{ .@"1:", ._, .@"and", .tmp3q, .leai(.tmp1q, .tmp2), ._, ._ }, |
| 14703 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, | 14702 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| 14704 | .{ ._, ._, .lzcnt, .tmp4q, .tmp3q, ._, ._ }, | 14703 | .{ ._, ._, .lzcnt, .tmp4q, .tmp3q, ._, ._ }, |
| 14705 | .{ ._, ._nc, .j, .@"1f", ._, ._, ._ }, | 14704 | .{ ._, ._nc, .j, .@"1f", ._, ._, ._ }, |
| ... | @@ -14708,16 +14707,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -14708,16 +14707,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 14708 | .{ ._, ._nc, .j, .@"1b", ._, ._, ._ }, | 14707 | .{ ._, ._nc, .j, .@"1b", ._, ._, ._ }, |
| 14709 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, | 14708 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, |
| 14710 | .{ .@"1:", ._, .neg, .tmp2d, ._, ._, ._ }, | 14709 | .{ .@"1:", ._, .neg, .tmp2d, ._, ._, ._ }, |
| 14711 | .{ ._, ._, .lea, .tmp3d, .leasiad(.none, .tmp4, .@"8", .tmp2, .add_src0_bit_size, -64), ._, ._ }, | 14710 | .{ ._, ._, .lea, .tmp3d, .leasiad(.tmp4, .@"8", .tmp2, .add_src0_bit_size, -64), ._, ._ }, |
| 14712 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_len), .tmp3b, ._, ._ }, | 14711 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_len), .tmp3b, ._, ._ }, |
| 14713 | .{ ._, ._, .lea, .tmp1q, .leaa(.none, .tmp1, .add_src0_elem_size), ._, ._ }, | 14712 | .{ ._, ._, .lea, .tmp1q, .leaa(.tmp1, .add_src0_elem_size), ._, ._ }, |
| 14714 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, | 14713 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 14715 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 14714 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 14716 | } }, | 14715 | } }, |
| 14717 | }, .{ | 14716 | }, .{ |
| 14718 | .required_features = .{ .@"64bit", .lzcnt, null, null }, | 14717 | .required_features = .{ .@"64bit", .lzcnt, null, null }, |
| 14719 | .dst_constraints = .{.{ .scalar_int_is = .byte }}, | ||
| 14720 | .src_constraints = .{ .{ .scalar_remainder_int = .{ .of = .xword, .is = .xword } }, .any }, | 14718 | .src_constraints = .{ .{ .scalar_remainder_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 14719 | .dst_constraints = .{.{ .scalar_int_is = .byte }}, | ||
| 14721 | .patterns = &.{ | 14720 | .patterns = &.{ |
| 14722 | .{ .src = .{ .to_mem, .none } }, | 14721 | .{ .src = .{ .to_mem, .none } }, |
| 14723 | }, | 14722 | }, |
| ... | @@ -14739,7 +14738,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -14739,7 +14738,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 14739 | .{ ._, ._, .lea, .tmp1q, .mem(.src0), ._, ._ }, | 14738 | .{ ._, ._, .lea, .tmp1q, .mem(.src0), ._, ._ }, |
| 14740 | .{ .@"0:", ._, .mov, .tmp2d, .sia(-8, .none, .add_src0_elem_size), ._, ._ }, | 14739 | .{ .@"0:", ._, .mov, .tmp2d, .sia(-8, .none, .add_src0_elem_size), ._, ._ }, |
| 14741 | .{ ._, ._, .mov, .tmp3q, .ua(.src0, .add_umax), ._, ._ }, | 14740 | .{ ._, ._, .mov, .tmp3q, .ua(.src0, .add_umax), ._, ._ }, |
| 14742 | .{ .@"1:", ._, .@"and", .tmp3q, .leai(.qword, .tmp1, .tmp2), ._, ._ }, | 14741 | .{ .@"1:", ._, .@"and", .tmp3q, .leai(.tmp1q, .tmp2), ._, ._ }, |
| 14743 | .{ ._, ._, .lzcnt, .tmp4q, .tmp3q, ._, ._ }, | 14742 | .{ ._, ._, .lzcnt, .tmp4q, .tmp3q, ._, ._ }, |
| 14744 | .{ ._, ._nc, .j, .@"1f", ._, ._, ._ }, | 14743 | .{ ._, ._nc, .j, .@"1f", ._, ._, ._ }, |
| 14745 | .{ ._, ._, .mov, .tmp3q, .si(-1), ._, ._ }, | 14744 | .{ ._, ._, .mov, .tmp3q, .si(-1), ._, ._ }, |
| ... | @@ -14747,16 +14746,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -14747,16 +14746,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 14747 | .{ ._, ._nc, .j, .@"1b", ._, ._, ._ }, | 14746 | .{ ._, ._nc, .j, .@"1b", ._, ._, ._ }, |
| 14748 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, | 14747 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, |
| 14749 | .{ .@"1:", ._, .neg, .tmp2d, ._, ._, ._ }, | 14748 | .{ .@"1:", ._, .neg, .tmp2d, ._, ._, ._ }, |
| 14750 | .{ ._, ._, .lea, .tmp3d, .leasiad(.none, .tmp4, .@"8", .tmp2, .add_src0_bit_size, -64), ._, ._ }, | 14749 | .{ ._, ._, .lea, .tmp3d, .leasiad(.tmp4, .@"8", .tmp2, .add_src0_bit_size, -64), ._, ._ }, |
| 14751 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_len), .tmp3b, ._, ._ }, | 14750 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_len), .tmp3b, ._, ._ }, |
| 14752 | .{ ._, ._, .lea, .tmp1q, .leaa(.none, .tmp1, .add_src0_elem_size), ._, ._ }, | 14751 | .{ ._, ._, .lea, .tmp1q, .leaa(.tmp1, .add_src0_elem_size), ._, ._ }, |
| 14753 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, | 14752 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 14754 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 14753 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 14755 | } }, | 14754 | } }, |
| 14756 | }, .{ | 14755 | }, .{ |
| 14757 | .required_features = .{ .@"64bit", null, null, null }, | 14756 | .required_features = .{ .@"64bit", null, null, null }, |
| 14758 | .dst_constraints = .{.{ .scalar_int_is = .byte }}, | ||
| 14759 | .src_constraints = .{ .{ .scalar_remainder_int = .{ .of = .xword, .is = .xword } }, .any }, | 14757 | .src_constraints = .{ .{ .scalar_remainder_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 14758 | .dst_constraints = .{.{ .scalar_int_is = .byte }}, | ||
| 14760 | .patterns = &.{ | 14759 | .patterns = &.{ |
| 14761 | .{ .src = .{ .to_mem, .none } }, | 14760 | .{ .src = .{ .to_mem, .none } }, |
| 14762 | }, | 14761 | }, |
| ... | @@ -14778,24 +14777,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -14778,24 +14777,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 14778 | .{ ._, ._, .lea, .tmp1q, .mem(.src0), ._, ._ }, | 14777 | .{ ._, ._, .lea, .tmp1q, .mem(.src0), ._, ._ }, |
| 14779 | .{ .@"0:", ._, .mov, .tmp2d, .sia(-8, .none, .add_src0_elem_size), ._, ._ }, | 14778 | .{ .@"0:", ._, .mov, .tmp2d, .sia(-8, .none, .add_src0_elem_size), ._, ._ }, |
| 14780 | .{ ._, ._, .mov, .tmp3q, .ua(.src0, .add_umax), ._, ._ }, | 14779 | .{ ._, ._, .mov, .tmp3q, .ua(.src0, .add_umax), ._, ._ }, |
| 14781 | .{ .@"1:", ._, .@"and", .tmp3q, .leai(.qword, .tmp1, .tmp2), ._, ._ }, | 14780 | .{ .@"1:", ._, .@"and", .tmp3q, .leai(.tmp1q, .tmp2), ._, ._ }, |
| 14782 | .{ ._, ._r, .bs, .tmp3q, .tmp3q, ._, ._ }, | 14781 | .{ ._, ._r, .bs, .tmp3q, .tmp3q, ._, ._ }, |
| 14783 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, | 14782 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, |
| 14784 | .{ ._, ._, .mov, .tmp3q, .si(-1), ._, ._ }, | 14783 | .{ ._, ._, .mov, .tmp3q, .si(-1), ._, ._ }, |
| 14785 | .{ ._, ._, .sub, .tmp2d, .si(8), ._, ._ }, | 14784 | .{ ._, ._, .sub, .tmp2d, .si(8), ._, ._ }, |
| 14786 | .{ ._, ._nc, .j, .@"1b", ._, ._, ._ }, | 14785 | .{ ._, ._nc, .j, .@"1b", ._, ._, ._ }, |
| 14787 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, | 14786 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, |
| 14788 | .{ .@"1:", ._, .lea, .tmp3d, .leasiad(.none, .tmp3, .@"8", .tmp2, .sub_src0_bit_size, 1), ._, ._ }, | 14787 | .{ .@"1:", ._, .lea, .tmp3d, .leasiad(.tmp3, .@"8", .tmp2, .sub_src0_bit_size, 1), ._, ._ }, |
| 14789 | .{ ._, ._, .neg, .tmp3b, ._, ._, ._ }, | 14788 | .{ ._, ._, .neg, .tmp3b, ._, ._, ._ }, |
| 14790 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_len), .tmp3b, ._, ._ }, | 14789 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_len), .tmp3b, ._, ._ }, |
| 14791 | .{ ._, ._, .lea, .tmp1q, .leaa(.none, .tmp1, .add_src0_elem_size), ._, ._ }, | 14790 | .{ ._, ._, .lea, .tmp1q, .leaa(.tmp1, .add_src0_elem_size), ._, ._ }, |
| 14792 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, | 14791 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 14793 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 14792 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 14794 | } }, | 14793 | } }, |
| 14795 | }, .{ | 14794 | }, .{ |
| 14796 | .required_features = .{ .@"64bit", .false_deps_lzcnt_tzcnt, .lzcnt, null }, | 14795 | .required_features = .{ .@"64bit", .false_deps_lzcnt_tzcnt, .lzcnt, null }, |
| 14797 | .dst_constraints = .{.{ .scalar_int_is = .word }}, | ||
| 14798 | .src_constraints = .{ .{ .scalar_remainder_int = .{ .of = .xword, .is = .qword } }, .any }, | 14796 | .src_constraints = .{ .{ .scalar_remainder_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 14797 | .dst_constraints = .{.{ .scalar_int_is = .word }}, | ||
| 14799 | .patterns = &.{ | 14798 | .patterns = &.{ |
| 14800 | .{ .src = .{ .to_mem, .none } }, | 14799 | .{ .src = .{ .to_mem, .none } }, |
| 14801 | }, | 14800 | }, |
| ... | @@ -14817,7 +14816,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -14817,7 +14816,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 14817 | .{ ._, ._, .lea, .tmp1q, .mem(.src0), ._, ._ }, | 14816 | .{ ._, ._, .lea, .tmp1q, .mem(.src0), ._, ._ }, |
| 14818 | .{ .@"0:", ._, .mov, .tmp2d, .sia(-16, .none, .add_src0_elem_size), ._, ._ }, | 14817 | .{ .@"0:", ._, .mov, .tmp2d, .sia(-16, .none, .add_src0_elem_size), ._, ._ }, |
| 14819 | .{ ._, ._, .mov, .tmp3q, .ua(.src0, .add_umax), ._, ._ }, | 14818 | .{ ._, ._, .mov, .tmp3q, .ua(.src0, .add_umax), ._, ._ }, |
| 14820 | .{ .@"1:", ._, .@"and", .tmp3q, .leai(.qword, .tmp1, .tmp2), ._, ._ }, | 14819 | .{ .@"1:", ._, .@"and", .tmp3q, .leai(.tmp1q, .tmp2), ._, ._ }, |
| 14821 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, | 14820 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| 14822 | .{ ._, ._, .lzcnt, .tmp4q, .tmp3q, ._, ._ }, | 14821 | .{ ._, ._, .lzcnt, .tmp4q, .tmp3q, ._, ._ }, |
| 14823 | .{ ._, ._nc, .j, .@"1f", ._, ._, ._ }, | 14822 | .{ ._, ._nc, .j, .@"1f", ._, ._, ._ }, |
| ... | @@ -14826,16 +14825,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -14826,16 +14825,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 14826 | .{ ._, ._nc, .j, .@"1b", ._, ._, ._ }, | 14825 | .{ ._, ._nc, .j, .@"1b", ._, ._, ._ }, |
| 14827 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, | 14826 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, |
| 14828 | .{ .@"1:", ._, .neg, .tmp2d, ._, ._, ._ }, | 14827 | .{ .@"1:", ._, .neg, .tmp2d, ._, ._, ._ }, |
| 14829 | .{ ._, ._, .lea, .tmp3d, .leasiad(.none, .tmp4, .@"8", .tmp2, .add_src0_bit_size, -64), ._, ._ }, | 14828 | .{ ._, ._, .lea, .tmp3d, .leasiad(.tmp4, .@"8", .tmp2, .add_src0_bit_size, -64), ._, ._ }, |
| 14830 | .{ ._, ._, .mov, .memsia(.dst0w, .@"2", .tmp0, .add_2_len), .tmp3w, ._, ._ }, | 14829 | .{ ._, ._, .mov, .memsia(.dst0w, .@"2", .tmp0, .add_2_len), .tmp3w, ._, ._ }, |
| 14831 | .{ ._, ._, .lea, .tmp1q, .leaa(.none, .tmp1, .add_src0_elem_size), ._, ._ }, | 14830 | .{ ._, ._, .lea, .tmp1q, .leaa(.tmp1, .add_src0_elem_size), ._, ._ }, |
| 14832 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, | 14831 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 14833 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 14832 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 14834 | } }, | 14833 | } }, |
| 14835 | }, .{ | 14834 | }, .{ |
| 14836 | .required_features = .{ .@"64bit", .lzcnt, null, null }, | 14835 | .required_features = .{ .@"64bit", .lzcnt, null, null }, |
| 14837 | .dst_constraints = .{.{ .scalar_int_is = .word }}, | ||
| 14838 | .src_constraints = .{ .{ .scalar_remainder_int = .{ .of = .xword, .is = .qword } }, .any }, | 14836 | .src_constraints = .{ .{ .scalar_remainder_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 14837 | .dst_constraints = .{.{ .scalar_int_is = .word }}, | ||
| 14839 | .patterns = &.{ | 14838 | .patterns = &.{ |
| 14840 | .{ .src = .{ .to_mem, .none } }, | 14839 | .{ .src = .{ .to_mem, .none } }, |
| 14841 | }, | 14840 | }, |
| ... | @@ -14857,7 +14856,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -14857,7 +14856,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 14857 | .{ ._, ._, .lea, .tmp1q, .mem(.src0), ._, ._ }, | 14856 | .{ ._, ._, .lea, .tmp1q, .mem(.src0), ._, ._ }, |
| 14858 | .{ .@"0:", ._, .mov, .tmp2d, .sia(-16, .none, .add_src0_elem_size), ._, ._ }, | 14857 | .{ .@"0:", ._, .mov, .tmp2d, .sia(-16, .none, .add_src0_elem_size), ._, ._ }, |
| 14859 | .{ ._, ._, .mov, .tmp3q, .ua(.src0, .add_umax), ._, ._ }, | 14858 | .{ ._, ._, .mov, .tmp3q, .ua(.src0, .add_umax), ._, ._ }, |
| 14860 | .{ .@"1:", ._, .@"and", .tmp3q, .leai(.qword, .tmp1, .tmp2), ._, ._ }, | 14859 | .{ .@"1:", ._, .@"and", .tmp3q, .leai(.tmp1q, .tmp2), ._, ._ }, |
| 14861 | .{ ._, ._, .lzcnt, .tmp4q, .tmp3q, ._, ._ }, | 14860 | .{ ._, ._, .lzcnt, .tmp4q, .tmp3q, ._, ._ }, |
| 14862 | .{ ._, ._nc, .j, .@"1f", ._, ._, ._ }, | 14861 | .{ ._, ._nc, .j, .@"1f", ._, ._, ._ }, |
| 14863 | .{ ._, ._, .mov, .tmp3q, .si(-1), ._, ._ }, | 14862 | .{ ._, ._, .mov, .tmp3q, .si(-1), ._, ._ }, |
| ... | @@ -14865,16 +14864,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -14865,16 +14864,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 14865 | .{ ._, ._nc, .j, .@"1b", ._, ._, ._ }, | 14864 | .{ ._, ._nc, .j, .@"1b", ._, ._, ._ }, |
| 14866 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, | 14865 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, |
| 14867 | .{ .@"1:", ._, .neg, .tmp2d, ._, ._, ._ }, | 14866 | .{ .@"1:", ._, .neg, .tmp2d, ._, ._, ._ }, |
| 14868 | .{ ._, ._, .lea, .tmp3d, .leasiad(.none, .tmp4, .@"8", .tmp2, .add_src0_bit_size, -64), ._, ._ }, | 14867 | .{ ._, ._, .lea, .tmp3d, .leasiad(.tmp4, .@"8", .tmp2, .add_src0_bit_size, -64), ._, ._ }, |
| 14869 | .{ ._, ._, .mov, .memsia(.dst0w, .@"2", .tmp0, .add_2_len), .tmp3w, ._, ._ }, | 14868 | .{ ._, ._, .mov, .memsia(.dst0w, .@"2", .tmp0, .add_2_len), .tmp3w, ._, ._ }, |
| 14870 | .{ ._, ._, .lea, .tmp1q, .leaa(.none, .tmp1, .add_src0_elem_size), ._, ._ }, | 14869 | .{ ._, ._, .lea, .tmp1q, .leaa(.tmp1, .add_src0_elem_size), ._, ._ }, |
| 14871 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, | 14870 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 14872 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 14871 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 14873 | } }, | 14872 | } }, |
| 14874 | }, .{ | 14873 | }, .{ |
| 14875 | .required_features = .{ .@"64bit", null, null, null }, | 14874 | .required_features = .{ .@"64bit", null, null, null }, |
| 14876 | .dst_constraints = .{.{ .scalar_int_is = .word }}, | ||
| 14877 | .src_constraints = .{ .{ .scalar_remainder_int = .{ .of = .xword, .is = .qword } }, .any }, | 14875 | .src_constraints = .{ .{ .scalar_remainder_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 14876 | .dst_constraints = .{.{ .scalar_int_is = .word }}, | ||
| 14878 | .patterns = &.{ | 14877 | .patterns = &.{ |
| 14879 | .{ .src = .{ .to_mem, .none } }, | 14878 | .{ .src = .{ .to_mem, .none } }, |
| 14880 | }, | 14879 | }, |
| ... | @@ -14896,24 +14895,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -14896,24 +14895,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 14896 | .{ ._, ._, .lea, .tmp1q, .mem(.src0), ._, ._ }, | 14895 | .{ ._, ._, .lea, .tmp1q, .mem(.src0), ._, ._ }, |
| 14897 | .{ .@"0:", ._, .mov, .tmp2d, .sia(-16, .none, .add_src0_elem_size), ._, ._ }, | 14896 | .{ .@"0:", ._, .mov, .tmp2d, .sia(-16, .none, .add_src0_elem_size), ._, ._ }, |
| 14898 | .{ ._, ._, .mov, .tmp3q, .ua(.src0, .add_umax), ._, ._ }, | 14897 | .{ ._, ._, .mov, .tmp3q, .ua(.src0, .add_umax), ._, ._ }, |
| 14899 | .{ .@"1:", ._, .@"and", .tmp3q, .leai(.qword, .tmp1, .tmp2), ._, ._ }, | 14898 | .{ .@"1:", ._, .@"and", .tmp3q, .leai(.tmp1q, .tmp2), ._, ._ }, |
| 14900 | .{ ._, ._r, .bs, .tmp3q, .tmp3q, ._, ._ }, | 14899 | .{ ._, ._r, .bs, .tmp3q, .tmp3q, ._, ._ }, |
| 14901 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, | 14900 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, |
| 14902 | .{ ._, ._, .mov, .tmp3q, .si(-1), ._, ._ }, | 14901 | .{ ._, ._, .mov, .tmp3q, .si(-1), ._, ._ }, |
| 14903 | .{ ._, ._, .sub, .tmp2d, .si(8), ._, ._ }, | 14902 | .{ ._, ._, .sub, .tmp2d, .si(8), ._, ._ }, |
| 14904 | .{ ._, ._nc, .j, .@"1b", ._, ._, ._ }, | 14903 | .{ ._, ._nc, .j, .@"1b", ._, ._, ._ }, |
| 14905 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, | 14904 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, |
| 14906 | .{ .@"1:", ._, .lea, .tmp3d, .leasiad(.none, .tmp3, .@"8", .tmp2, .sub_src0_bit_size, 1), ._, ._ }, | 14905 | .{ .@"1:", ._, .lea, .tmp3d, .leasiad(.tmp3, .@"8", .tmp2, .sub_src0_bit_size, 1), ._, ._ }, |
| 14907 | .{ ._, ._, .neg, .tmp3d, ._, ._, ._ }, | 14906 | .{ ._, ._, .neg, .tmp3d, ._, ._, ._ }, |
| 14908 | .{ ._, ._, .mov, .memsia(.dst0w, .@"2", .tmp0, .add_2_len), .tmp3w, ._, ._ }, | 14907 | .{ ._, ._, .mov, .memsia(.dst0w, .@"2", .tmp0, .add_2_len), .tmp3w, ._, ._ }, |
| 14909 | .{ ._, ._, .lea, .tmp1q, .leaa(.none, .tmp1, .add_src0_elem_size), ._, ._ }, | 14908 | .{ ._, ._, .lea, .tmp1q, .leaa(.tmp1, .add_src0_elem_size), ._, ._ }, |
| 14910 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, | 14909 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 14911 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 14910 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 14912 | } }, | 14911 | } }, |
| 14913 | }, .{ | 14912 | }, .{ |
| 14914 | .required_features = .{ .@"64bit", .false_deps_lzcnt_tzcnt, .lzcnt, null }, | 14913 | .required_features = .{ .@"64bit", .false_deps_lzcnt_tzcnt, .lzcnt, null }, |
| 14915 | .dst_constraints = .{.{ .scalar_int_is = .word }}, | ||
| 14916 | .src_constraints = .{ .{ .scalar_remainder_int = .{ .of = .xword, .is = .xword } }, .any }, | 14914 | .src_constraints = .{ .{ .scalar_remainder_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 14915 | .dst_constraints = .{.{ .scalar_int_is = .word }}, | ||
| 14917 | .patterns = &.{ | 14916 | .patterns = &.{ |
| 14918 | .{ .src = .{ .to_mem, .none } }, | 14917 | .{ .src = .{ .to_mem, .none } }, |
| 14919 | }, | 14918 | }, |
| ... | @@ -14935,7 +14934,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -14935,7 +14934,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 14935 | .{ ._, ._, .lea, .tmp1q, .mem(.src0), ._, ._ }, | 14934 | .{ ._, ._, .lea, .tmp1q, .mem(.src0), ._, ._ }, |
| 14936 | .{ .@"0:", ._, .mov, .tmp2d, .sia(-8, .none, .add_src0_elem_size), ._, ._ }, | 14935 | .{ .@"0:", ._, .mov, .tmp2d, .sia(-8, .none, .add_src0_elem_size), ._, ._ }, |
| 14937 | .{ ._, ._, .mov, .tmp3q, .ua(.src0, .add_umax), ._, ._ }, | 14936 | .{ ._, ._, .mov, .tmp3q, .ua(.src0, .add_umax), ._, ._ }, |
| 14938 | .{ .@"1:", ._, .@"and", .tmp3q, .leai(.qword, .tmp1, .tmp2), ._, ._ }, | 14937 | .{ .@"1:", ._, .@"and", .tmp3q, .leai(.tmp1q, .tmp2), ._, ._ }, |
| 14939 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, | 14938 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| 14940 | .{ ._, ._, .lzcnt, .tmp4q, .tmp3q, ._, ._ }, | 14939 | .{ ._, ._, .lzcnt, .tmp4q, .tmp3q, ._, ._ }, |
| 14941 | .{ ._, ._nc, .j, .@"1f", ._, ._, ._ }, | 14940 | .{ ._, ._nc, .j, .@"1f", ._, ._, ._ }, |
| ... | @@ -14944,16 +14943,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -14944,16 +14943,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 14944 | .{ ._, ._nc, .j, .@"1b", ._, ._, ._ }, | 14943 | .{ ._, ._nc, .j, .@"1b", ._, ._, ._ }, |
| 14945 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, | 14944 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, |
| 14946 | .{ .@"1:", ._, .neg, .tmp2d, ._, ._, ._ }, | 14945 | .{ .@"1:", ._, .neg, .tmp2d, ._, ._, ._ }, |
| 14947 | .{ ._, ._, .lea, .tmp3d, .leasiad(.none, .tmp4, .@"8", .tmp2, .add_src0_bit_size, -64), ._, ._ }, | 14946 | .{ ._, ._, .lea, .tmp3d, .leasiad(.tmp4, .@"8", .tmp2, .add_src0_bit_size, -64), ._, ._ }, |
| 14948 | .{ ._, ._, .mov, .memsia(.dst0w, .@"2", .tmp0, .add_2_len), .tmp3w, ._, ._ }, | 14947 | .{ ._, ._, .mov, .memsia(.dst0w, .@"2", .tmp0, .add_2_len), .tmp3w, ._, ._ }, |
| 14949 | .{ ._, ._, .lea, .tmp1q, .leaa(.none, .tmp1, .add_src0_elem_size), ._, ._ }, | 14948 | .{ ._, ._, .lea, .tmp1q, .leaa(.tmp1, .add_src0_elem_size), ._, ._ }, |
| 14950 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, | 14949 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 14951 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 14950 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 14952 | } }, | 14951 | } }, |
| 14953 | }, .{ | 14952 | }, .{ |
| 14954 | .required_features = .{ .@"64bit", .lzcnt, null, null }, | 14953 | .required_features = .{ .@"64bit", .lzcnt, null, null }, |
| 14955 | .dst_constraints = .{.{ .scalar_int_is = .word }}, | ||
| 14956 | .src_constraints = .{ .{ .scalar_remainder_int = .{ .of = .xword, .is = .xword } }, .any }, | 14954 | .src_constraints = .{ .{ .scalar_remainder_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 14955 | .dst_constraints = .{.{ .scalar_int_is = .word }}, | ||
| 14957 | .patterns = &.{ | 14956 | .patterns = &.{ |
| 14958 | .{ .src = .{ .to_mem, .none } }, | 14957 | .{ .src = .{ .to_mem, .none } }, |
| 14959 | }, | 14958 | }, |
| ... | @@ -14975,7 +14974,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -14975,7 +14974,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 14975 | .{ ._, ._, .lea, .tmp1q, .mem(.src0), ._, ._ }, | 14974 | .{ ._, ._, .lea, .tmp1q, .mem(.src0), ._, ._ }, |
| 14976 | .{ .@"0:", ._, .mov, .tmp2d, .sia(-8, .none, .add_src0_elem_size), ._, ._ }, | 14975 | .{ .@"0:", ._, .mov, .tmp2d, .sia(-8, .none, .add_src0_elem_size), ._, ._ }, |
| 14977 | .{ ._, ._, .mov, .tmp3q, .ua(.src0, .add_umax), ._, ._ }, | 14976 | .{ ._, ._, .mov, .tmp3q, .ua(.src0, .add_umax), ._, ._ }, |
| 14978 | .{ .@"1:", ._, .@"and", .tmp3q, .leai(.qword, .tmp1, .tmp2), ._, ._ }, | 14977 | .{ .@"1:", ._, .@"and", .tmp3q, .leai(.tmp1q, .tmp2), ._, ._ }, |
| 14979 | .{ ._, ._, .lzcnt, .tmp4q, .tmp3q, ._, ._ }, | 14978 | .{ ._, ._, .lzcnt, .tmp4q, .tmp3q, ._, ._ }, |
| 14980 | .{ ._, ._nc, .j, .@"1f", ._, ._, ._ }, | 14979 | .{ ._, ._nc, .j, .@"1f", ._, ._, ._ }, |
| 14981 | .{ ._, ._, .mov, .tmp3q, .si(-1), ._, ._ }, | 14980 | .{ ._, ._, .mov, .tmp3q, .si(-1), ._, ._ }, |
| ... | @@ -14983,16 +14982,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -14983,16 +14982,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 14983 | .{ ._, ._nc, .j, .@"1b", ._, ._, ._ }, | 14982 | .{ ._, ._nc, .j, .@"1b", ._, ._, ._ }, |
| 14984 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, | 14983 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, |
| 14985 | .{ .@"1:", ._, .neg, .tmp2d, ._, ._, ._ }, | 14984 | .{ .@"1:", ._, .neg, .tmp2d, ._, ._, ._ }, |
| 14986 | .{ ._, ._, .lea, .tmp3d, .leasiad(.none, .tmp4, .@"8", .tmp2, .add_src0_bit_size, -64), ._, ._ }, | 14985 | .{ ._, ._, .lea, .tmp3d, .leasiad(.tmp4, .@"8", .tmp2, .add_src0_bit_size, -64), ._, ._ }, |
| 14987 | .{ ._, ._, .mov, .memsia(.dst0w, .@"2", .tmp0, .add_2_len), .tmp3w, ._, ._ }, | 14986 | .{ ._, ._, .mov, .memsia(.dst0w, .@"2", .tmp0, .add_2_len), .tmp3w, ._, ._ }, |
| 14988 | .{ ._, ._, .lea, .tmp1q, .leaa(.none, .tmp1, .add_src0_elem_size), ._, ._ }, | 14987 | .{ ._, ._, .lea, .tmp1q, .leaa(.tmp1, .add_src0_elem_size), ._, ._ }, |
| 14989 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, | 14988 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 14990 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 14989 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 14991 | } }, | 14990 | } }, |
| 14992 | }, .{ | 14991 | }, .{ |
| 14993 | .required_features = .{ .@"64bit", null, null, null }, | 14992 | .required_features = .{ .@"64bit", null, null, null }, |
| 14994 | .dst_constraints = .{.{ .scalar_int_is = .word }}, | ||
| 14995 | .src_constraints = .{ .{ .scalar_remainder_int = .{ .of = .xword, .is = .xword } }, .any }, | 14993 | .src_constraints = .{ .{ .scalar_remainder_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 14994 | .dst_constraints = .{.{ .scalar_int_is = .word }}, | ||
| 14996 | .patterns = &.{ | 14995 | .patterns = &.{ |
| 14997 | .{ .src = .{ .to_mem, .none } }, | 14996 | .{ .src = .{ .to_mem, .none } }, |
| 14998 | }, | 14997 | }, |
| ... | @@ -15014,17 +15013,17 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -15014,17 +15013,17 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 15014 | .{ ._, ._, .lea, .tmp1q, .mem(.src0), ._, ._ }, | 15013 | .{ ._, ._, .lea, .tmp1q, .mem(.src0), ._, ._ }, |
| 15015 | .{ .@"0:", ._, .mov, .tmp2d, .sia(-8, .none, .add_src0_elem_size), ._, ._ }, | 15014 | .{ .@"0:", ._, .mov, .tmp2d, .sia(-8, .none, .add_src0_elem_size), ._, ._ }, |
| 15016 | .{ ._, ._, .mov, .tmp3q, .ua(.src0, .add_umax), ._, ._ }, | 15015 | .{ ._, ._, .mov, .tmp3q, .ua(.src0, .add_umax), ._, ._ }, |
| 15017 | .{ .@"1:", ._, .@"and", .tmp3q, .leai(.qword, .tmp1, .tmp2), ._, ._ }, | 15016 | .{ .@"1:", ._, .@"and", .tmp3q, .leai(.tmp1q, .tmp2), ._, ._ }, |
| 15018 | .{ ._, ._r, .bs, .tmp3q, .tmp3q, ._, ._ }, | 15017 | .{ ._, ._r, .bs, .tmp3q, .tmp3q, ._, ._ }, |
| 15019 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, | 15018 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, |
| 15020 | .{ ._, ._, .mov, .tmp3q, .si(-1), ._, ._ }, | 15019 | .{ ._, ._, .mov, .tmp3q, .si(-1), ._, ._ }, |
| 15021 | .{ ._, ._, .sub, .tmp2d, .si(8), ._, ._ }, | 15020 | .{ ._, ._, .sub, .tmp2d, .si(8), ._, ._ }, |
| 15022 | .{ ._, ._nc, .j, .@"1b", ._, ._, ._ }, | 15021 | .{ ._, ._nc, .j, .@"1b", ._, ._, ._ }, |
| 15023 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, | 15022 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, |
| 15024 | .{ .@"1:", ._, .lea, .tmp3d, .leasiad(.none, .tmp3, .@"8", .tmp2, .sub_src0_bit_size, 1), ._, ._ }, | 15023 | .{ .@"1:", ._, .lea, .tmp3d, .leasiad(.tmp3, .@"8", .tmp2, .sub_src0_bit_size, 1), ._, ._ }, |
| 15025 | .{ ._, ._, .neg, .tmp3d, ._, ._, ._ }, | 15024 | .{ ._, ._, .neg, .tmp3d, ._, ._, ._ }, |
| 15026 | .{ ._, ._, .mov, .memsia(.dst0w, .@"2", .tmp0, .add_2_len), .tmp3w, ._, ._ }, | 15025 | .{ ._, ._, .mov, .memsia(.dst0w, .@"2", .tmp0, .add_2_len), .tmp3w, ._, ._ }, |
| 15027 | .{ ._, ._, .lea, .tmp1q, .leaa(.none, .tmp1, .add_src0_elem_size), ._, ._ }, | 15026 | .{ ._, ._, .lea, .tmp1q, .leaa(.tmp1, .add_src0_elem_size), ._, ._ }, |
| 15028 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, | 15027 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 15029 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 15028 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 15030 | } }, | 15029 | } }, |
| ... | @@ -15524,7 +15523,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -15524,7 +15523,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 15524 | .{ ._, .vp_b, .cmpeq, .tmp3y, .tmp3y, .memia(.src1y, .tmp0, .add_size), ._ }, | 15523 | .{ ._, .vp_b, .cmpeq, .tmp3y, .tmp3y, .memia(.src1y, .tmp0, .add_size), ._ }, |
| 15525 | .{ ._, .vp_b, .movmsk, .tmp2d, .tmp3y, ._, ._ }, | 15524 | .{ ._, .vp_b, .movmsk, .tmp2d, .tmp3y, ._, ._ }, |
| 15526 | .{ ._, ._, .mov, .memi(.dst0d, .tmp1), .tmp2d, ._, ._ }, | 15525 | .{ ._, ._, .mov, .memi(.dst0d, .tmp1), .tmp2d, ._, ._ }, |
| 15527 | .{ ._, ._, .lea, .tmp1d, .lead(.none, .tmp1, 4), ._, ._ }, | 15526 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 4), ._, ._ }, |
| 15528 | .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, | 15527 | .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, |
| 15529 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 15528 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 15530 | }, | 15529 | }, |
| ... | @@ -15536,7 +15535,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -15536,7 +15535,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 15536 | .{ ._, .vp_b, .movmsk, .tmp2d, .tmp3y, ._, ._ }, | 15535 | .{ ._, .vp_b, .movmsk, .tmp2d, .tmp3y, ._, ._ }, |
| 15537 | .{ ._, ._, .not, .tmp2d, ._, ._, ._ }, | 15536 | .{ ._, ._, .not, .tmp2d, ._, ._, ._ }, |
| 15538 | .{ ._, ._, .mov, .memi(.dst0d, .tmp1), .tmp2d, ._, ._ }, | 15537 | .{ ._, ._, .mov, .memi(.dst0d, .tmp1), .tmp2d, ._, ._ }, |
| 15539 | .{ ._, ._, .lea, .tmp1d, .lead(.none, .tmp1, 4), ._, ._ }, | 15538 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 4), ._, ._ }, |
| 15540 | .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, | 15539 | .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, |
| 15541 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 15540 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 15542 | }, | 15541 | }, |
| ... | @@ -15570,7 +15569,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -15570,7 +15569,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 15570 | .{ ._, .vp_b, .ackssw, .tmp3y, .tmp3y, .tmp3y, ._ }, | 15569 | .{ ._, .vp_b, .ackssw, .tmp3y, .tmp3y, .tmp3y, ._ }, |
| 15571 | .{ ._, .vp_b, .movmsk, .tmp2d, .tmp3y, ._, ._ }, | 15570 | .{ ._, .vp_b, .movmsk, .tmp2d, .tmp3y, ._, ._ }, |
| 15572 | .{ ._, ._, .mov, .memi(.dst0w, .tmp1), .tmp2w, ._, ._ }, | 15571 | .{ ._, ._, .mov, .memi(.dst0w, .tmp1), .tmp2w, ._, ._ }, |
| 15573 | .{ ._, ._, .lea, .tmp1d, .lead(.none, .tmp1, 2), ._, ._ }, | 15572 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 2), ._, ._ }, |
| 15574 | .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, | 15573 | .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, |
| 15575 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 15574 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 15576 | }, | 15575 | }, |
| ... | @@ -15583,7 +15582,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -15583,7 +15582,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 15583 | .{ ._, .vp_b, .movmsk, .tmp2d, .tmp3y, ._, ._ }, | 15582 | .{ ._, .vp_b, .movmsk, .tmp2d, .tmp3y, ._, ._ }, |
| 15584 | .{ ._, ._, .not, .tmp2d, ._, ._, ._ }, | 15583 | .{ ._, ._, .not, .tmp2d, ._, ._, ._ }, |
| 15585 | .{ ._, ._, .mov, .memi(.dst0w, .tmp1), .tmp2w, ._, ._ }, | 15584 | .{ ._, ._, .mov, .memi(.dst0w, .tmp1), .tmp2w, ._, ._ }, |
| 15586 | .{ ._, ._, .lea, .tmp1d, .lead(.none, .tmp1, 2), ._, ._ }, | 15585 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 2), ._, ._ }, |
| 15587 | .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, | 15586 | .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, |
| 15588 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 15587 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 15589 | }, | 15588 | }, |
| ... | @@ -15616,7 +15615,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -15616,7 +15615,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 15616 | .{ ._, .vp_d, .cmpeq, .tmp3y, .tmp3y, .memia(.src1y, .tmp0, .add_size), ._ }, | 15615 | .{ ._, .vp_d, .cmpeq, .tmp3y, .tmp3y, .memia(.src1y, .tmp0, .add_size), ._ }, |
| 15617 | .{ ._, .v_ps, .movmsk, .tmp2d, .tmp3y, ._, ._ }, | 15616 | .{ ._, .v_ps, .movmsk, .tmp2d, .tmp3y, ._, ._ }, |
| 15618 | .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ }, | 15617 | .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ }, |
| 15619 | .{ ._, ._, .lea, .tmp1d, .lead(.none, .tmp1, 1), ._, ._ }, | 15618 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 1), ._, ._ }, |
| 15620 | .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, | 15619 | .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, |
| 15621 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 15620 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 15622 | }, | 15621 | }, |
| ... | @@ -15628,7 +15627,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -15628,7 +15627,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 15628 | .{ ._, .v_ps, .movmsk, .tmp2d, .tmp3y, ._, ._ }, | 15627 | .{ ._, .v_ps, .movmsk, .tmp2d, .tmp3y, ._, ._ }, |
| 15629 | .{ ._, ._, .not, .tmp2b, ._, ._, ._ }, | 15628 | .{ ._, ._, .not, .tmp2b, ._, ._, ._ }, |
| 15630 | .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ }, | 15629 | .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ }, |
| 15631 | .{ ._, ._, .lea, .tmp1d, .lead(.none, .tmp1, 1), ._, ._ }, | 15630 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 1), ._, ._ }, |
| 15632 | .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, | 15631 | .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, |
| 15633 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 15632 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 15634 | }, | 15633 | }, |
| ... | @@ -15663,7 +15662,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -15663,7 +15662,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 15663 | .{ ._, .v_pd, .movmsk, .tmp3d, .tmp4y, ._, ._ }, | 15662 | .{ ._, .v_pd, .movmsk, .tmp3d, .tmp4y, ._, ._ }, |
| 15664 | .{ ._, ._l, .ro, .tmp3b, .tmp1b, ._, ._ }, | 15663 | .{ ._, ._l, .ro, .tmp3b, .tmp1b, ._, ._ }, |
| 15665 | .{ ._, ._, .@"or", .tmp2b, .tmp3b, ._, ._ }, | 15664 | .{ ._, ._, .@"or", .tmp2b, .tmp3b, ._, ._ }, |
| 15666 | .{ ._, ._, .lea, .tmp1d, .lead(.none, .tmp1, 4), ._, ._ }, | 15665 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 4), ._, ._ }, |
| 15667 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, | 15666 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, |
| 15668 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, | 15667 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, |
| 15669 | .{ ._, ._, .mov, .tmp3d, .tmp1d, ._, ._ }, | 15668 | .{ ._, ._, .mov, .tmp3d, .tmp1d, ._, ._ }, |
| ... | @@ -15687,7 +15686,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -15687,7 +15686,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 15687 | .{ ._, ._, .xor, .tmp3b, .si(0b1111), ._, ._ }, | 15686 | .{ ._, ._, .xor, .tmp3b, .si(0b1111), ._, ._ }, |
| 15688 | .{ ._, ._l, .ro, .tmp3b, .tmp1b, ._, ._ }, | 15687 | .{ ._, ._l, .ro, .tmp3b, .tmp1b, ._, ._ }, |
| 15689 | .{ ._, ._, .@"or", .tmp2b, .tmp3b, ._, ._ }, | 15688 | .{ ._, ._, .@"or", .tmp2b, .tmp3b, ._, ._ }, |
| 15690 | .{ ._, ._, .lea, .tmp1d, .lead(.none, .tmp1, 4), ._, ._ }, | 15689 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 4), ._, ._ }, |
| 15691 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, | 15690 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, |
| 15692 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, | 15691 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, |
| 15693 | .{ ._, ._, .mov, .tmp3d, .tmp1d, ._, ._ }, | 15692 | .{ ._, ._, .mov, .tmp3d, .tmp1d, ._, ._ }, |
| ... | @@ -15730,7 +15729,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -15730,7 +15729,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 15730 | .{ ._, .vp_b, .cmpeq, .tmp3x, .tmp3x, .memia(.src1x, .tmp0, .add_size), ._ }, | 15729 | .{ ._, .vp_b, .cmpeq, .tmp3x, .tmp3x, .memia(.src1x, .tmp0, .add_size), ._ }, |
| 15731 | .{ ._, .vp_b, .movmsk, .tmp2d, .tmp3x, ._, ._ }, | 15730 | .{ ._, .vp_b, .movmsk, .tmp2d, .tmp3x, ._, ._ }, |
| 15732 | .{ ._, ._, .mov, .memi(.dst0w, .tmp1), .tmp2w, ._, ._ }, | 15731 | .{ ._, ._, .mov, .memi(.dst0w, .tmp1), .tmp2w, ._, ._ }, |
| 15733 | .{ ._, ._, .lea, .tmp1d, .lead(.none, .tmp1, 2), ._, ._ }, | 15732 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 2), ._, ._ }, |
| 15734 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | 15733 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 15735 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 15734 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 15736 | }, | 15735 | }, |
| ... | @@ -15742,7 +15741,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -15742,7 +15741,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 15742 | .{ ._, .vp_b, .movmsk, .tmp2d, .tmp3x, ._, ._ }, | 15741 | .{ ._, .vp_b, .movmsk, .tmp2d, .tmp3x, ._, ._ }, |
| 15743 | .{ ._, ._, .not, .tmp2d, ._, ._, ._ }, | 15742 | .{ ._, ._, .not, .tmp2d, ._, ._, ._ }, |
| 15744 | .{ ._, ._, .mov, .memi(.dst0w, .tmp1), .tmp2w, ._, ._ }, | 15743 | .{ ._, ._, .mov, .memi(.dst0w, .tmp1), .tmp2w, ._, ._ }, |
| 15745 | .{ ._, ._, .lea, .tmp1d, .lead(.none, .tmp1, 2), ._, ._ }, | 15744 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 2), ._, ._ }, |
| 15746 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | 15745 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 15747 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 15746 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 15748 | }, | 15747 | }, |
| ... | @@ -15776,7 +15775,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -15776,7 +15775,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 15776 | .{ ._, .vp_b, .ackssw, .tmp3x, .tmp3x, .tmp3x, ._ }, | 15775 | .{ ._, .vp_b, .ackssw, .tmp3x, .tmp3x, .tmp3x, ._ }, |
| 15777 | .{ ._, .vp_b, .movmsk, .tmp2d, .tmp3x, ._, ._ }, | 15776 | .{ ._, .vp_b, .movmsk, .tmp2d, .tmp3x, ._, ._ }, |
| 15778 | .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ }, | 15777 | .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ }, |
| 15779 | .{ ._, ._, .lea, .tmp1d, .lead(.none, .tmp1, 1), ._, ._ }, | 15778 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 1), ._, ._ }, |
| 15780 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | 15779 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 15781 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 15780 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 15782 | }, | 15781 | }, |
| ... | @@ -15789,7 +15788,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -15789,7 +15788,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 15789 | .{ ._, .vp_b, .movmsk, .tmp2d, .tmp3x, ._, ._ }, | 15788 | .{ ._, .vp_b, .movmsk, .tmp2d, .tmp3x, ._, ._ }, |
| 15790 | .{ ._, ._, .not, .tmp2b, ._, ._, ._ }, | 15789 | .{ ._, ._, .not, .tmp2b, ._, ._, ._ }, |
| 15791 | .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ }, | 15790 | .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ }, |
| 15792 | .{ ._, ._, .lea, .tmp1d, .lead(.none, .tmp1, 1), ._, ._ }, | 15791 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 1), ._, ._ }, |
| 15793 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | 15792 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 15794 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 15793 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 15795 | }, | 15794 | }, |
| ... | @@ -15824,7 +15823,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -15824,7 +15823,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 15824 | .{ ._, .v_ps, .movmsk, .tmp3d, .tmp4x, ._, ._ }, | 15823 | .{ ._, .v_ps, .movmsk, .tmp3d, .tmp4x, ._, ._ }, |
| 15825 | .{ ._, ._l, .ro, .tmp3b, .tmp1b, ._, ._ }, | 15824 | .{ ._, ._l, .ro, .tmp3b, .tmp1b, ._, ._ }, |
| 15826 | .{ ._, ._, .@"or", .tmp2b, .tmp3b, ._, ._ }, | 15825 | .{ ._, ._, .@"or", .tmp2b, .tmp3b, ._, ._ }, |
| 15827 | .{ ._, ._, .lea, .tmp1d, .lead(.none, .tmp1, 4), ._, ._ }, | 15826 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 4), ._, ._ }, |
| 15828 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, | 15827 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, |
| 15829 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, | 15828 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, |
| 15830 | .{ ._, ._, .mov, .tmp3d, .tmp1d, ._, ._ }, | 15829 | .{ ._, ._, .mov, .tmp3d, .tmp1d, ._, ._ }, |
| ... | @@ -15848,7 +15847,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -15848,7 +15847,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 15848 | .{ ._, ._, .xor, .tmp3b, .si(0b1111), ._, ._ }, | 15847 | .{ ._, ._, .xor, .tmp3b, .si(0b1111), ._, ._ }, |
| 15849 | .{ ._, ._l, .ro, .tmp3b, .tmp1b, ._, ._ }, | 15848 | .{ ._, ._l, .ro, .tmp3b, .tmp1b, ._, ._ }, |
| 15850 | .{ ._, ._, .@"or", .tmp2b, .tmp3b, ._, ._ }, | 15849 | .{ ._, ._, .@"or", .tmp2b, .tmp3b, ._, ._ }, |
| 15851 | .{ ._, ._, .lea, .tmp1d, .lead(.none, .tmp1, 4), ._, ._ }, | 15850 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 4), ._, ._ }, |
| 15852 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, | 15851 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, |
| 15853 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, | 15852 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, |
| 15854 | .{ ._, ._, .mov, .tmp3d, .tmp1d, ._, ._ }, | 15853 | .{ ._, ._, .mov, .tmp3d, .tmp1d, ._, ._ }, |
| ... | @@ -15893,7 +15892,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -15893,7 +15892,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 15893 | .{ ._, .v_pd, .movmsk, .tmp3d, .tmp4x, ._, ._ }, | 15892 | .{ ._, .v_pd, .movmsk, .tmp3d, .tmp4x, ._, ._ }, |
| 15894 | .{ ._, ._l, .ro, .tmp3b, .tmp1b, ._, ._ }, | 15893 | .{ ._, ._l, .ro, .tmp3b, .tmp1b, ._, ._ }, |
| 15895 | .{ ._, ._, .@"or", .tmp2b, .tmp3b, ._, ._ }, | 15894 | .{ ._, ._, .@"or", .tmp2b, .tmp3b, ._, ._ }, |
| 15896 | .{ ._, ._, .lea, .tmp1d, .lead(.none, .tmp1, 2), ._, ._ }, | 15895 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 2), ._, ._ }, |
| 15897 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, | 15896 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, |
| 15898 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, | 15897 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, |
| 15899 | .{ ._, ._, .mov, .tmp3d, .tmp1d, ._, ._ }, | 15898 | .{ ._, ._, .mov, .tmp3d, .tmp1d, ._, ._ }, |
| ... | @@ -15917,7 +15916,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -15917,7 +15916,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 15917 | .{ ._, ._, .xor, .tmp3b, .si(0b11), ._, ._ }, | 15916 | .{ ._, ._, .xor, .tmp3b, .si(0b11), ._, ._ }, |
| 15918 | .{ ._, ._l, .ro, .tmp3b, .tmp1b, ._, ._ }, | 15917 | .{ ._, ._l, .ro, .tmp3b, .tmp1b, ._, ._ }, |
| 15919 | .{ ._, ._, .@"or", .tmp2b, .tmp3b, ._, ._ }, | 15918 | .{ ._, ._, .@"or", .tmp2b, .tmp3b, ._, ._ }, |
| 15920 | .{ ._, ._, .lea, .tmp1d, .lead(.none, .tmp1, 2), ._, ._ }, | 15919 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 2), ._, ._ }, |
| 15921 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, | 15920 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, |
| 15922 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, | 15921 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, |
| 15923 | .{ ._, ._, .mov, .tmp3d, .tmp1d, ._, ._ }, | 15922 | .{ ._, ._, .mov, .tmp3d, .tmp1d, ._, ._ }, |
| ... | @@ -15960,7 +15959,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -15960,7 +15959,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 15960 | .{ ._, .p_b, .cmpeq, .tmp3x, .memia(.src1x, .tmp0, .add_size), ._, ._ }, | 15959 | .{ ._, .p_b, .cmpeq, .tmp3x, .memia(.src1x, .tmp0, .add_size), ._, ._ }, |
| 15961 | .{ ._, .p_b, .movmsk, .tmp2d, .tmp3x, ._, ._ }, | 15960 | .{ ._, .p_b, .movmsk, .tmp2d, .tmp3x, ._, ._ }, |
| 15962 | .{ ._, ._, .mov, .memi(.dst0w, .tmp1), .tmp2w, ._, ._ }, | 15961 | .{ ._, ._, .mov, .memi(.dst0w, .tmp1), .tmp2w, ._, ._ }, |
| 15963 | .{ ._, ._, .lea, .tmp1d, .lead(.none, .tmp1, 2), ._, ._ }, | 15962 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 2), ._, ._ }, |
| 15964 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | 15963 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 15965 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 15964 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 15966 | }, | 15965 | }, |
| ... | @@ -15972,7 +15971,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -15972,7 +15971,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 15972 | .{ ._, .p_b, .movmsk, .tmp2d, .tmp3x, ._, ._ }, | 15971 | .{ ._, .p_b, .movmsk, .tmp2d, .tmp3x, ._, ._ }, |
| 15973 | .{ ._, ._, .not, .tmp2d, ._, ._, ._ }, | 15972 | .{ ._, ._, .not, .tmp2d, ._, ._, ._ }, |
| 15974 | .{ ._, ._, .mov, .memi(.dst0w, .tmp1), .tmp2w, ._, ._ }, | 15973 | .{ ._, ._, .mov, .memi(.dst0w, .tmp1), .tmp2w, ._, ._ }, |
| 15975 | .{ ._, ._, .lea, .tmp1d, .lead(.none, .tmp1, 2), ._, ._ }, | 15974 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 2), ._, ._ }, |
| 15976 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | 15975 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 15977 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 15976 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 15978 | }, | 15977 | }, |
| ... | @@ -16006,7 +16005,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -16006,7 +16005,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 16006 | .{ ._, .p_b, .ackssw, .tmp3x, .tmp3x, ._, ._ }, | 16005 | .{ ._, .p_b, .ackssw, .tmp3x, .tmp3x, ._, ._ }, |
| 16007 | .{ ._, .p_b, .movmsk, .tmp2d, .tmp3x, ._, ._ }, | 16006 | .{ ._, .p_b, .movmsk, .tmp2d, .tmp3x, ._, ._ }, |
| 16008 | .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ }, | 16007 | .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ }, |
| 16009 | .{ ._, ._, .lea, .tmp1d, .lead(.none, .tmp1, 1), ._, ._ }, | 16008 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 1), ._, ._ }, |
| 16010 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | 16009 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 16011 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 16010 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 16012 | }, | 16011 | }, |
| ... | @@ -16019,7 +16018,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -16019,7 +16018,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 16019 | .{ ._, .p_b, .movmsk, .tmp2d, .tmp3x, ._, ._ }, | 16018 | .{ ._, .p_b, .movmsk, .tmp2d, .tmp3x, ._, ._ }, |
| 16020 | .{ ._, ._, .not, .tmp2b, ._, ._, ._ }, | 16019 | .{ ._, ._, .not, .tmp2b, ._, ._, ._ }, |
| 16021 | .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ }, | 16020 | .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ }, |
| 16022 | .{ ._, ._, .lea, .tmp1d, .lead(.none, .tmp1, 1), ._, ._ }, | 16021 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 1), ._, ._ }, |
| 16023 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | 16022 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 16024 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 16023 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 16025 | }, | 16024 | }, |
| ... | @@ -16054,7 +16053,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -16054,7 +16053,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 16054 | .{ ._, ._ps, .movmsk, .tmp3d, .tmp4x, ._, ._ }, | 16053 | .{ ._, ._ps, .movmsk, .tmp3d, .tmp4x, ._, ._ }, |
| 16055 | .{ ._, ._l, .ro, .tmp3b, .tmp1b, ._, ._ }, | 16054 | .{ ._, ._l, .ro, .tmp3b, .tmp1b, ._, ._ }, |
| 16056 | .{ ._, ._, .@"or", .tmp2b, .tmp3b, ._, ._ }, | 16055 | .{ ._, ._, .@"or", .tmp2b, .tmp3b, ._, ._ }, |
| 16057 | .{ ._, ._, .lea, .tmp1d, .lead(.none, .tmp1, 4), ._, ._ }, | 16056 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 4), ._, ._ }, |
| 16058 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, | 16057 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, |
| 16059 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, | 16058 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, |
| 16060 | .{ ._, ._, .mov, .tmp3d, .tmp1d, ._, ._ }, | 16059 | .{ ._, ._, .mov, .tmp3d, .tmp1d, ._, ._ }, |
| ... | @@ -16078,7 +16077,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -16078,7 +16077,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 16078 | .{ ._, ._, .xor, .tmp3b, .si(0b1111), ._, ._ }, | 16077 | .{ ._, ._, .xor, .tmp3b, .si(0b1111), ._, ._ }, |
| 16079 | .{ ._, ._l, .ro, .tmp3b, .tmp1b, ._, ._ }, | 16078 | .{ ._, ._l, .ro, .tmp3b, .tmp1b, ._, ._ }, |
| 16080 | .{ ._, ._, .@"or", .tmp2b, .tmp3b, ._, ._ }, | 16079 | .{ ._, ._, .@"or", .tmp2b, .tmp3b, ._, ._ }, |
| 16081 | .{ ._, ._, .lea, .tmp1d, .lead(.none, .tmp1, 4), ._, ._ }, | 16080 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 4), ._, ._ }, |
| 16082 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, | 16081 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, |
| 16083 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, | 16082 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, |
| 16084 | .{ ._, ._, .mov, .tmp3d, .tmp1d, ._, ._ }, | 16083 | .{ ._, ._, .mov, .tmp3d, .tmp1d, ._, ._ }, |
| ... | @@ -16123,7 +16122,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -16123,7 +16122,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 16123 | .{ ._, ._pd, .movmsk, .tmp3d, .tmp4x, ._, ._ }, | 16122 | .{ ._, ._pd, .movmsk, .tmp3d, .tmp4x, ._, ._ }, |
| 16124 | .{ ._, ._l, .ro, .tmp3b, .tmp1b, ._, ._ }, | 16123 | .{ ._, ._l, .ro, .tmp3b, .tmp1b, ._, ._ }, |
| 16125 | .{ ._, ._, .@"or", .tmp2b, .tmp3b, ._, ._ }, | 16124 | .{ ._, ._, .@"or", .tmp2b, .tmp3b, ._, ._ }, |
| 16126 | .{ ._, ._, .lea, .tmp1d, .lead(.none, .tmp1, 2), ._, ._ }, | 16125 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 2), ._, ._ }, |
| 16127 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, | 16126 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, |
| 16128 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, | 16127 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, |
| 16129 | .{ ._, ._, .mov, .tmp3d, .tmp1d, ._, ._ }, | 16128 | .{ ._, ._, .mov, .tmp3d, .tmp1d, ._, ._ }, |
| ... | @@ -16147,7 +16146,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -16147,7 +16146,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 16147 | .{ ._, ._, .xor, .tmp3b, .si(0b11), ._, ._ }, | 16146 | .{ ._, ._, .xor, .tmp3b, .si(0b11), ._, ._ }, |
| 16148 | .{ ._, ._l, .ro, .tmp3b, .tmp1b, ._, ._ }, | 16147 | .{ ._, ._l, .ro, .tmp3b, .tmp1b, ._, ._ }, |
| 16149 | .{ ._, ._, .@"or", .tmp2b, .tmp3b, ._, ._ }, | 16148 | .{ ._, ._, .@"or", .tmp2b, .tmp3b, ._, ._ }, |
| 16150 | .{ ._, ._, .lea, .tmp1d, .lead(.none, .tmp1, 2), ._, ._ }, | 16149 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 2), ._, ._ }, |
| 16151 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, | 16150 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, |
| 16152 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, | 16151 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, |
| 16153 | .{ ._, ._, .mov, .tmp3d, .tmp1d, ._, ._ }, | 16152 | .{ ._, ._, .mov, .tmp3d, .tmp1d, ._, ._ }, |
| ... | @@ -16190,7 +16189,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -16190,7 +16189,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 16190 | .{ ._, .p_b, .cmpeq, .tmp3q, .memia(.src1q, .tmp0, .add_size), ._, ._ }, | 16189 | .{ ._, .p_b, .cmpeq, .tmp3q, .memia(.src1q, .tmp0, .add_size), ._, ._ }, |
| 16191 | .{ ._, .p_b, .movmsk, .tmp2d, .tmp3q, ._, ._ }, | 16190 | .{ ._, .p_b, .movmsk, .tmp2d, .tmp3q, ._, ._ }, |
| 16192 | .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ }, | 16191 | .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ }, |
| 16193 | .{ ._, ._, .lea, .tmp1d, .lead(.none, .tmp1, 1), ._, ._ }, | 16192 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 1), ._, ._ }, |
| 16194 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | 16193 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 16195 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 16194 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 16196 | }, | 16195 | }, |
| ... | @@ -16202,7 +16201,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -16202,7 +16201,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 16202 | .{ ._, .p_b, .movmsk, .tmp2d, .tmp3q, ._, ._ }, | 16201 | .{ ._, .p_b, .movmsk, .tmp2d, .tmp3q, ._, ._ }, |
| 16203 | .{ ._, ._, .not, .tmp2b, ._, ._, ._ }, | 16202 | .{ ._, ._, .not, .tmp2b, ._, ._, ._ }, |
| 16204 | .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ }, | 16203 | .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ }, |
| 16205 | .{ ._, ._, .lea, .tmp1d, .lead(.none, .tmp1, 1), ._, ._ }, | 16204 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 1), ._, ._ }, |
| 16206 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | 16205 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 16207 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 16206 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 16208 | }, | 16207 | }, |
| ... | @@ -16239,7 +16238,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -16239,7 +16238,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 16239 | .{ ._, .p_b, .movmsk, .tmp4d, .tmp5q, ._, ._ }, | 16238 | .{ ._, .p_b, .movmsk, .tmp4d, .tmp5q, ._, ._ }, |
| 16240 | .{ ._, ._l, .ro, .tmp4b, .tmp1b, ._, ._ }, | 16239 | .{ ._, ._l, .ro, .tmp4b, .tmp1b, ._, ._ }, |
| 16241 | .{ ._, ._, .@"or", .tmp2b, .tmp4b, ._, ._ }, | 16240 | .{ ._, ._, .@"or", .tmp2b, .tmp4b, ._, ._ }, |
| 16242 | .{ ._, ._, .lea, .tmp1d, .lead(.none, .tmp1, 4), ._, ._ }, | 16241 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 4), ._, ._ }, |
| 16243 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, | 16242 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, |
| 16244 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, | 16243 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, |
| 16245 | .{ ._, ._, .mov, .tmp4d, .tmp1d, ._, ._ }, | 16244 | .{ ._, ._, .mov, .tmp4d, .tmp1d, ._, ._ }, |
| ... | @@ -16265,7 +16264,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -16265,7 +16264,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 16265 | .{ ._, ._, .xor, .tmp4b, .si(0b1111), ._, ._ }, | 16264 | .{ ._, ._, .xor, .tmp4b, .si(0b1111), ._, ._ }, |
| 16266 | .{ ._, ._l, .ro, .tmp4b, .tmp1b, ._, ._ }, | 16265 | .{ ._, ._l, .ro, .tmp4b, .tmp1b, ._, ._ }, |
| 16267 | .{ ._, ._, .@"or", .tmp2b, .tmp4b, ._, ._ }, | 16266 | .{ ._, ._, .@"or", .tmp2b, .tmp4b, ._, ._ }, |
| 16268 | .{ ._, ._, .lea, .tmp1d, .lead(.none, .tmp1, 4), ._, ._ }, | 16267 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 4), ._, ._ }, |
| 16269 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, | 16268 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, |
| 16270 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, | 16269 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, |
| 16271 | .{ ._, ._, .mov, .tmp4d, .tmp1d, ._, ._ }, | 16270 | .{ ._, ._, .mov, .tmp4d, .tmp1d, ._, ._ }, |
| ... | @@ -16313,7 +16312,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -16313,7 +16312,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 16313 | .{ ._, .p_b, .movmsk, .tmp4d, .tmp5q, ._, ._ }, | 16312 | .{ ._, .p_b, .movmsk, .tmp4d, .tmp5q, ._, ._ }, |
| 16314 | .{ ._, ._l, .ro, .tmp4b, .tmp1b, ._, ._ }, | 16313 | .{ ._, ._l, .ro, .tmp4b, .tmp1b, ._, ._ }, |
| 16315 | .{ ._, ._, .@"or", .tmp2b, .tmp4b, ._, ._ }, | 16314 | .{ ._, ._, .@"or", .tmp2b, .tmp4b, ._, ._ }, |
| 16316 | .{ ._, ._, .lea, .tmp1d, .lead(.none, .tmp1, 2), ._, ._ }, | 16315 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 2), ._, ._ }, |
| 16317 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, | 16316 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, |
| 16318 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, | 16317 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, |
| 16319 | .{ ._, ._, .mov, .tmp4d, .tmp1d, ._, ._ }, | 16318 | .{ ._, ._, .mov, .tmp4d, .tmp1d, ._, ._ }, |
| ... | @@ -16340,7 +16339,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -16340,7 +16339,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 16340 | .{ ._, ._, .xor, .tmp4b, .si(0b11), ._, ._ }, | 16339 | .{ ._, ._, .xor, .tmp4b, .si(0b11), ._, ._ }, |
| 16341 | .{ ._, ._l, .ro, .tmp4b, .tmp1b, ._, ._ }, | 16340 | .{ ._, ._l, .ro, .tmp4b, .tmp1b, ._, ._ }, |
| 16342 | .{ ._, ._, .@"or", .tmp2b, .tmp4b, ._, ._ }, | 16341 | .{ ._, ._, .@"or", .tmp2b, .tmp4b, ._, ._ }, |
| 16343 | .{ ._, ._, .lea, .tmp1d, .lead(.none, .tmp1, 2), ._, ._ }, | 16342 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 2), ._, ._ }, |
| 16344 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, | 16343 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, |
| 16345 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, | 16344 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, |
| 16346 | .{ ._, ._, .mov, .tmp4d, .tmp1d, ._, ._ }, | 16345 | .{ ._, ._, .mov, .tmp4d, .tmp1d, ._, ._ }, |
| ... | @@ -16356,8 +16355,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -16356,8 +16355,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 16356 | }, | 16355 | }, |
| 16357 | } }, | 16356 | } }, |
| 16358 | }, .{ | 16357 | }, .{ |
| 16359 | .dst_constraints = .{.{ .bool_vec = .byte }}, | ||
| 16360 | .src_constraints = .{ .{ .scalar_int_is = .byte }, .{ .scalar_int_is = .byte } }, | 16358 | .src_constraints = .{ .{ .scalar_int_is = .byte }, .{ .scalar_int_is = .byte } }, |
| 16359 | .dst_constraints = .{.{ .bool_vec = .byte }}, | ||
| 16361 | .patterns = &.{ | 16360 | .patterns = &.{ |
| 16362 | .{ .src = .{ .to_mem, .to_mem } }, | 16361 | .{ .src = .{ .to_mem, .to_mem } }, |
| 16363 | }, | 16362 | }, |
| ... | @@ -16388,8 +16387,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -16388,8 +16387,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 16388 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 16387 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 16389 | } }, | 16388 | } }, |
| 16390 | }, .{ | 16389 | }, .{ |
| 16391 | .dst_constraints = .{.{ .bool_vec = .byte }}, | ||
| 16392 | .src_constraints = .{ .{ .scalar_int_is = .word }, .{ .scalar_int_is = .word } }, | 16390 | .src_constraints = .{ .{ .scalar_int_is = .word }, .{ .scalar_int_is = .word } }, |
| 16391 | .dst_constraints = .{.{ .bool_vec = .byte }}, | ||
| 16393 | .patterns = &.{ | 16392 | .patterns = &.{ |
| 16394 | .{ .src = .{ .to_mem, .to_mem } }, | 16393 | .{ .src = .{ .to_mem, .to_mem } }, |
| 16395 | }, | 16394 | }, |
| ... | @@ -16420,8 +16419,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -16420,8 +16419,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 16420 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 16419 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 16421 | } }, | 16420 | } }, |
| 16422 | }, .{ | 16421 | }, .{ |
| 16423 | .dst_constraints = .{.{ .bool_vec = .byte }}, | ||
| 16424 | .src_constraints = .{ .{ .scalar_int_is = .dword }, .{ .scalar_int_is = .dword } }, | 16422 | .src_constraints = .{ .{ .scalar_int_is = .dword }, .{ .scalar_int_is = .dword } }, |
| 16423 | .dst_constraints = .{.{ .bool_vec = .byte }}, | ||
| 16425 | .patterns = &.{ | 16424 | .patterns = &.{ |
| 16426 | .{ .src = .{ .to_mem, .to_mem } }, | 16425 | .{ .src = .{ .to_mem, .to_mem } }, |
| 16427 | }, | 16426 | }, |
| ... | @@ -16453,8 +16452,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -16453,8 +16452,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 16453 | } }, | 16452 | } }, |
| 16454 | }, .{ | 16453 | }, .{ |
| 16455 | .required_features = .{ .@"64bit", null, null, null }, | 16454 | .required_features = .{ .@"64bit", null, null, null }, |
| 16456 | .dst_constraints = .{.{ .bool_vec = .byte }}, | ||
| 16457 | .src_constraints = .{ .{ .scalar_int_is = .qword }, .{ .scalar_int_is = .qword } }, | 16455 | .src_constraints = .{ .{ .scalar_int_is = .qword }, .{ .scalar_int_is = .qword } }, |
| 16456 | .dst_constraints = .{.{ .bool_vec = .byte }}, | ||
| 16458 | .patterns = &.{ | 16457 | .patterns = &.{ |
| 16459 | .{ .src = .{ .to_mem, .to_mem } }, | 16458 | .{ .src = .{ .to_mem, .to_mem } }, |
| 16460 | }, | 16459 | }, |
| ... | @@ -16485,8 +16484,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -16485,8 +16484,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 16485 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 16484 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 16486 | } }, | 16485 | } }, |
| 16487 | }, .{ | 16486 | }, .{ |
| 16488 | .dst_constraints = .{.{ .bool_vec = .byte }}, | ||
| 16489 | .src_constraints = .{ .any_scalar_int, .any_scalar_int }, | 16487 | .src_constraints = .{ .any_scalar_int, .any_scalar_int }, |
| 16488 | .dst_constraints = .{.{ .bool_vec = .byte }}, | ||
| 16490 | .patterns = &.{ | 16489 | .patterns = &.{ |
| 16491 | .{ .src = .{ .to_mem, .to_mem } }, | 16490 | .{ .src = .{ .to_mem, .to_mem } }, |
| 16492 | }, | 16491 | }, |
| ... | @@ -16524,8 +16523,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -16524,8 +16523,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 16524 | .{ ._, ._b, .j, .@"0b", ._, ._, ._ }, | 16523 | .{ ._, ._b, .j, .@"0b", ._, ._, ._ }, |
| 16525 | } }, | 16524 | } }, |
| 16526 | }, .{ | 16525 | }, .{ |
| 16527 | .dst_constraints = .{.{ .bool_vec = .dword }}, | ||
| 16528 | .src_constraints = .{ .{ .scalar_int_is = .byte }, .{ .scalar_int_is = .byte } }, | 16526 | .src_constraints = .{ .{ .scalar_int_is = .byte }, .{ .scalar_int_is = .byte } }, |
| 16527 | .dst_constraints = .{.{ .bool_vec = .dword }}, | ||
| 16529 | .patterns = &.{ | 16528 | .patterns = &.{ |
| 16530 | .{ .src = .{ .to_mem, .to_mem } }, | 16529 | .{ .src = .{ .to_mem, .to_mem } }, |
| 16531 | }, | 16530 | }, |
| ... | @@ -16557,8 +16556,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -16557,8 +16556,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 16557 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 16556 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 16558 | } }, | 16557 | } }, |
| 16559 | }, .{ | 16558 | }, .{ |
| 16560 | .dst_constraints = .{.{ .bool_vec = .dword }}, | ||
| 16561 | .src_constraints = .{ .{ .scalar_int_is = .word }, .{ .scalar_int_is = .word } }, | 16559 | .src_constraints = .{ .{ .scalar_int_is = .word }, .{ .scalar_int_is = .word } }, |
| 16560 | .dst_constraints = .{.{ .bool_vec = .dword }}, | ||
| 16562 | .patterns = &.{ | 16561 | .patterns = &.{ |
| 16563 | .{ .src = .{ .to_mem, .to_mem } }, | 16562 | .{ .src = .{ .to_mem, .to_mem } }, |
| 16564 | }, | 16563 | }, |
| ... | @@ -16590,8 +16589,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -16590,8 +16589,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 16590 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 16589 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 16591 | } }, | 16590 | } }, |
| 16592 | }, .{ | 16591 | }, .{ |
| 16593 | .dst_constraints = .{.{ .bool_vec = .dword }}, | ||
| 16594 | .src_constraints = .{ .{ .scalar_int_is = .dword }, .{ .scalar_int_is = .dword } }, | 16592 | .src_constraints = .{ .{ .scalar_int_is = .dword }, .{ .scalar_int_is = .dword } }, |
| 16593 | .dst_constraints = .{.{ .bool_vec = .dword }}, | ||
| 16595 | .patterns = &.{ | 16594 | .patterns = &.{ |
| 16596 | .{ .src = .{ .to_mem, .to_mem } }, | 16595 | .{ .src = .{ .to_mem, .to_mem } }, |
| 16597 | }, | 16596 | }, |
| ... | @@ -16624,8 +16623,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -16624,8 +16623,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 16624 | } }, | 16623 | } }, |
| 16625 | }, .{ | 16624 | }, .{ |
| 16626 | .required_features = .{ .@"64bit", null, null, null }, | 16625 | .required_features = .{ .@"64bit", null, null, null }, |
| 16627 | .dst_constraints = .{.{ .bool_vec = .dword }}, | ||
| 16628 | .src_constraints = .{ .{ .scalar_int_is = .qword }, .{ .scalar_int_is = .qword } }, | 16626 | .src_constraints = .{ .{ .scalar_int_is = .qword }, .{ .scalar_int_is = .qword } }, |
| 16627 | .dst_constraints = .{.{ .bool_vec = .dword }}, | ||
| 16629 | .patterns = &.{ | 16628 | .patterns = &.{ |
| 16630 | .{ .src = .{ .to_mem, .to_mem } }, | 16629 | .{ .src = .{ .to_mem, .to_mem } }, |
| 16631 | }, | 16630 | }, |
| ... | @@ -16657,8 +16656,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -16657,8 +16656,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 16657 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 16656 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 16658 | } }, | 16657 | } }, |
| 16659 | }, .{ | 16658 | }, .{ |
| 16660 | .dst_constraints = .{.{ .bool_vec = .dword }}, | ||
| 16661 | .src_constraints = .{ .any_scalar_int, .any_scalar_int }, | 16659 | .src_constraints = .{ .any_scalar_int, .any_scalar_int }, |
| 16660 | .dst_constraints = .{.{ .bool_vec = .dword }}, | ||
| 16662 | .patterns = &.{ | 16661 | .patterns = &.{ |
| 16663 | .{ .src = .{ .to_mem, .to_mem } }, | 16662 | .{ .src = .{ .to_mem, .to_mem } }, |
| 16664 | }, | 16663 | }, |
| ... | @@ -16698,8 +16697,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -16698,8 +16697,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 16698 | } }, | 16697 | } }, |
| 16699 | }, .{ | 16698 | }, .{ |
| 16700 | .required_features = .{ .@"64bit", null, null, null }, | 16699 | .required_features = .{ .@"64bit", null, null, null }, |
| 16701 | .dst_constraints = .{.{ .bool_vec = .qword }}, | ||
| 16702 | .src_constraints = .{ .{ .scalar_int_is = .byte }, .{ .scalar_int_is = .byte } }, | 16700 | .src_constraints = .{ .{ .scalar_int_is = .byte }, .{ .scalar_int_is = .byte } }, |
| 16701 | .dst_constraints = .{.{ .bool_vec = .qword }}, | ||
| 16703 | .patterns = &.{ | 16702 | .patterns = &.{ |
| 16704 | .{ .src = .{ .to_mem, .to_mem } }, | 16703 | .{ .src = .{ .to_mem, .to_mem } }, |
| 16705 | }, | 16704 | }, |
| ... | @@ -16732,8 +16731,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -16732,8 +16731,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 16732 | } }, | 16731 | } }, |
| 16733 | }, .{ | 16732 | }, .{ |
| 16734 | .required_features = .{ .@"64bit", null, null, null }, | 16733 | .required_features = .{ .@"64bit", null, null, null }, |
| 16735 | .dst_constraints = .{.{ .bool_vec = .qword }}, | ||
| 16736 | .src_constraints = .{ .{ .scalar_int_is = .word }, .{ .scalar_int_is = .word } }, | 16734 | .src_constraints = .{ .{ .scalar_int_is = .word }, .{ .scalar_int_is = .word } }, |
| 16735 | .dst_constraints = .{.{ .bool_vec = .qword }}, | ||
| 16737 | .patterns = &.{ | 16736 | .patterns = &.{ |
| 16738 | .{ .src = .{ .to_mem, .to_mem } }, | 16737 | .{ .src = .{ .to_mem, .to_mem } }, |
| 16739 | }, | 16738 | }, |
| ... | @@ -16765,8 +16764,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -16765,8 +16764,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 16765 | } }, | 16764 | } }, |
| 16766 | }, .{ | 16765 | }, .{ |
| 16767 | .required_features = .{ .@"64bit", null, null, null }, | 16766 | .required_features = .{ .@"64bit", null, null, null }, |
| 16768 | .dst_constraints = .{.{ .bool_vec = .qword }}, | ||
| 16769 | .src_constraints = .{ .{ .scalar_int_is = .dword }, .{ .scalar_int_is = .dword } }, | 16767 | .src_constraints = .{ .{ .scalar_int_is = .dword }, .{ .scalar_int_is = .dword } }, |
| 16768 | .dst_constraints = .{.{ .bool_vec = .qword }}, | ||
| 16770 | .patterns = &.{ | 16769 | .patterns = &.{ |
| 16771 | .{ .src = .{ .to_mem, .to_mem } }, | 16770 | .{ .src = .{ .to_mem, .to_mem } }, |
| 16772 | }, | 16771 | }, |
| ... | @@ -16799,8 +16798,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -16799,8 +16798,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 16799 | } }, | 16798 | } }, |
| 16800 | }, .{ | 16799 | }, .{ |
| 16801 | .required_features = .{ .@"64bit", null, null, null }, | 16800 | .required_features = .{ .@"64bit", null, null, null }, |
| 16802 | .dst_constraints = .{.{ .bool_vec = .qword }}, | ||
| 16803 | .src_constraints = .{ .{ .scalar_int_is = .qword }, .{ .scalar_int_is = .qword } }, | 16801 | .src_constraints = .{ .{ .scalar_int_is = .qword }, .{ .scalar_int_is = .qword } }, |
| 16802 | .dst_constraints = .{.{ .bool_vec = .qword }}, | ||
| 16804 | .patterns = &.{ | 16803 | .patterns = &.{ |
| 16805 | .{ .src = .{ .to_mem, .to_mem } }, | 16804 | .{ .src = .{ .to_mem, .to_mem } }, |
| 16806 | }, | 16805 | }, |
| ... | @@ -16833,8 +16832,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -16833,8 +16832,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 16833 | } }, | 16832 | } }, |
| 16834 | }, .{ | 16833 | }, .{ |
| 16835 | .required_features = .{ .@"64bit", null, null, null }, | 16834 | .required_features = .{ .@"64bit", null, null, null }, |
| 16836 | .dst_constraints = .{.{ .bool_vec = .qword }}, | ||
| 16837 | .src_constraints = .{ .any_scalar_int, .any_scalar_int }, | 16835 | .src_constraints = .{ .any_scalar_int, .any_scalar_int }, |
| 16836 | .dst_constraints = .{.{ .bool_vec = .qword }}, | ||
| 16838 | .patterns = &.{ | 16837 | .patterns = &.{ |
| 16839 | .{ .src = .{ .to_mem, .to_mem } }, | 16838 | .{ .src = .{ .to_mem, .to_mem } }, |
| 16840 | }, | 16839 | }, |
| ... | @@ -17281,8 +17280,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -17281,8 +17280,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 17281 | .ne => .neq, | 17280 | .ne => .neq, |
| 17282 | }) }, | 17281 | }) }, |
| 17283 | .{ ._, .v_ps, .movmsk, .tmp4d, .tmp2y, ._, ._ }, | 17282 | .{ ._, .v_ps, .movmsk, .tmp4d, .tmp2y, ._, ._ }, |
| 17284 | .{ ._, ._, .mov, .lea(.byte, .tmp1), .tmp4b, ._, ._ }, | 17283 | .{ ._, ._, .mov, .lea(.tmp1b), .tmp4b, ._, ._ }, |
| 17285 | .{ ._, ._, .lea, .tmp1p, .lead(.none, .tmp1, 1), ._, ._ }, | 17284 | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 1), ._, ._ }, |
| 17286 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | 17285 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 17287 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 17286 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 17288 | } }, | 17287 | } }, |
| ... | @@ -17319,18 +17318,18 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -17319,18 +17318,18 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 17319 | .ne => .neq, | 17318 | .ne => .neq, |
| 17320 | }) }, | 17319 | }) }, |
| 17321 | .{ ._, .v_ps, .movmsk, .tmp4d, .tmp2y, ._, ._ }, | 17320 | .{ ._, .v_ps, .movmsk, .tmp4d, .tmp2y, ._, ._ }, |
| 17322 | .{ ._, ._, .mov, .lea(.byte, .tmp1), .tmp4b, ._, ._ }, | 17321 | .{ ._, ._, .mov, .lea(.tmp1b), .tmp4b, ._, ._ }, |
| 17323 | .{ ._, ._c, .in, .tmp1p, ._, ._, ._ }, | 17322 | .{ ._, ._c, .in, .tmp1p, ._, ._, ._ }, |
| 17324 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | 17323 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 17325 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 17324 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 17326 | } }, | 17325 | } }, |
| 17327 | }, .{ | 17326 | }, .{ |
| 17328 | .required_features = .{ .avx, .slow_incdec, null, null }, | 17327 | .required_features = .{ .avx, .slow_incdec, null, null }, |
| 17329 | .dst_constraints = .{.{ .bool_vec = .dword }}, | ||
| 17330 | .src_constraints = .{ | 17328 | .src_constraints = .{ |
| 17331 | .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, | 17329 | .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, |
| 17332 | .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, | 17330 | .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, |
| 17333 | }, | 17331 | }, |
| 17332 | .dst_constraints = .{.{ .bool_vec = .dword }}, | ||
| 17334 | .patterns = &.{ | 17333 | .patterns = &.{ |
| 17335 | .{ .src = .{ .to_mem, .to_mem } }, | 17334 | .{ .src = .{ .to_mem, .to_mem } }, |
| 17336 | }, | 17335 | }, |
| ... | @@ -17371,11 +17370,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -17371,11 +17370,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 17371 | } }, | 17370 | } }, |
| 17372 | }, .{ | 17371 | }, .{ |
| 17373 | .required_features = .{ .avx, null, null, null }, | 17372 | .required_features = .{ .avx, null, null, null }, |
| 17374 | .dst_constraints = .{.{ .bool_vec = .dword }}, | ||
| 17375 | .src_constraints = .{ | 17373 | .src_constraints = .{ |
| 17376 | .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, | 17374 | .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, |
| 17377 | .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, | 17375 | .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, |
| 17378 | }, | 17376 | }, |
| 17377 | .dst_constraints = .{.{ .bool_vec = .dword }}, | ||
| 17379 | .patterns = &.{ | 17378 | .patterns = &.{ |
| 17380 | .{ .src = .{ .to_mem, .to_mem } }, | 17379 | .{ .src = .{ .to_mem, .to_mem } }, |
| 17381 | }, | 17380 | }, |
| ... | @@ -17416,11 +17415,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -17416,11 +17415,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 17416 | } }, | 17415 | } }, |
| 17417 | }, .{ | 17416 | }, .{ |
| 17418 | .required_features = .{ .sse2, .slow_incdec, null, null }, | 17417 | .required_features = .{ .sse2, .slow_incdec, null, null }, |
| 17419 | .dst_constraints = .{.{ .bool_vec = .dword }}, | ||
| 17420 | .src_constraints = .{ | 17418 | .src_constraints = .{ |
| 17421 | .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, | 17419 | .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, |
| 17422 | .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, | 17420 | .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, |
| 17423 | }, | 17421 | }, |
| 17422 | .dst_constraints = .{.{ .bool_vec = .dword }}, | ||
| 17424 | .patterns = &.{ | 17423 | .patterns = &.{ |
| 17425 | .{ .src = .{ .to_mem, .to_mem } }, | 17424 | .{ .src = .{ .to_mem, .to_mem } }, |
| 17426 | }, | 17425 | }, |
| ... | @@ -17462,11 +17461,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -17462,11 +17461,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 17462 | } }, | 17461 | } }, |
| 17463 | }, .{ | 17462 | }, .{ |
| 17464 | .required_features = .{ .sse2, null, null, null }, | 17463 | .required_features = .{ .sse2, null, null, null }, |
| 17465 | .dst_constraints = .{.{ .bool_vec = .dword }}, | ||
| 17466 | .src_constraints = .{ | 17464 | .src_constraints = .{ |
| 17467 | .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, | 17465 | .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, |
| 17468 | .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, | 17466 | .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, |
| 17469 | }, | 17467 | }, |
| 17468 | .dst_constraints = .{.{ .bool_vec = .dword }}, | ||
| 17470 | .patterns = &.{ | 17469 | .patterns = &.{ |
| 17471 | .{ .src = .{ .to_mem, .to_mem } }, | 17470 | .{ .src = .{ .to_mem, .to_mem } }, |
| 17472 | }, | 17471 | }, |
| ... | @@ -17508,11 +17507,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -17508,11 +17507,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 17508 | } }, | 17507 | } }, |
| 17509 | }, .{ | 17508 | }, .{ |
| 17510 | .required_features = .{ .sse, .slow_incdec, null, null }, | 17509 | .required_features = .{ .sse, .slow_incdec, null, null }, |
| 17511 | .dst_constraints = .{.{ .bool_vec = .dword }}, | ||
| 17512 | .src_constraints = .{ | 17510 | .src_constraints = .{ |
| 17513 | .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, | 17511 | .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, |
| 17514 | .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, | 17512 | .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, |
| 17515 | }, | 17513 | }, |
| 17514 | .dst_constraints = .{.{ .bool_vec = .dword }}, | ||
| 17516 | .patterns = &.{ | 17515 | .patterns = &.{ |
| 17517 | .{ .src = .{ .to_mem, .to_mem } }, | 17516 | .{ .src = .{ .to_mem, .to_mem } }, |
| 17518 | }, | 17517 | }, |
| ... | @@ -17556,11 +17555,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -17556,11 +17555,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 17556 | } }, | 17555 | } }, |
| 17557 | }, .{ | 17556 | }, .{ |
| 17558 | .required_features = .{ .sse, null, null, null }, | 17557 | .required_features = .{ .sse, null, null, null }, |
| 17559 | .dst_constraints = .{.{ .bool_vec = .dword }}, | ||
| 17560 | .src_constraints = .{ | 17558 | .src_constraints = .{ |
| 17561 | .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, | 17559 | .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, |
| 17562 | .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, | 17560 | .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, |
| 17563 | }, | 17561 | }, |
| 17562 | .dst_constraints = .{.{ .bool_vec = .dword }}, | ||
| 17564 | .patterns = &.{ | 17563 | .patterns = &.{ |
| 17565 | .{ .src = .{ .to_mem, .to_mem } }, | 17564 | .{ .src = .{ .to_mem, .to_mem } }, |
| 17566 | }, | 17565 | }, |
| ... | @@ -17642,7 +17641,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -17642,7 +17641,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 17642 | .{ ._, ._, .mov, .tmp6d, .tmp0d, ._, ._ }, | 17641 | .{ ._, ._, .mov, .tmp6d, .tmp0d, ._, ._ }, |
| 17643 | .{ ._, ._l, .sh, .tmp7q, .tmp6b, ._, ._ }, | 17642 | .{ ._, ._l, .sh, .tmp7q, .tmp6b, ._, ._ }, |
| 17644 | .{ ._, ._, .@"or", .tmp1q, .tmp7q, ._, ._ }, | 17643 | .{ ._, ._, .@"or", .tmp1q, .tmp7q, ._, ._ }, |
| 17645 | .{ ._, ._, .lea, .tmp0d, .lead(.none, .tmp0, 1), ._, ._ }, | 17644 | .{ ._, ._, .lea, .tmp0d, .lead(.tmp0, 1), ._, ._ }, |
| 17646 | .{ ._, ._, .@"test", .tmp0d, .si(0b111111), ._, ._ }, | 17645 | .{ ._, ._, .@"test", .tmp0d, .si(0b111111), ._, ._ }, |
| 17647 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, | 17646 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, |
| 17648 | .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ }, | 17647 | .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ }, |
| ... | @@ -17751,7 +17750,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -17751,7 +17750,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 17751 | .{ ._, ._, .mov, .tmp6d, .tmp0d, ._, ._ }, | 17750 | .{ ._, ._, .mov, .tmp6d, .tmp0d, ._, ._ }, |
| 17752 | .{ ._, ._l, .sh, .tmp7q, .tmp6b, ._, ._ }, | 17751 | .{ ._, ._l, .sh, .tmp7q, .tmp6b, ._, ._ }, |
| 17753 | .{ ._, ._, .@"or", .tmp1q, .tmp7q, ._, ._ }, | 17752 | .{ ._, ._, .@"or", .tmp1q, .tmp7q, ._, ._ }, |
| 17754 | .{ ._, ._, .lea, .tmp0d, .lead(.none, .tmp0, 1), ._, ._ }, | 17753 | .{ ._, ._, .lea, .tmp0d, .lead(.tmp0, 1), ._, ._ }, |
| 17755 | .{ ._, ._, .@"test", .tmp0d, .si(0b111111), ._, ._ }, | 17754 | .{ ._, ._, .@"test", .tmp0d, .si(0b111111), ._, ._ }, |
| 17756 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, | 17755 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, |
| 17757 | .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ }, | 17756 | .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ }, |
| ... | @@ -17863,7 +17862,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -17863,7 +17862,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 17863 | .{ ._, ._, .mov, .tmp6d, .tmp0d, ._, ._ }, | 17862 | .{ ._, ._, .mov, .tmp6d, .tmp0d, ._, ._ }, |
| 17864 | .{ ._, ._l, .sh, .tmp7q, .tmp6b, ._, ._ }, | 17863 | .{ ._, ._l, .sh, .tmp7q, .tmp6b, ._, ._ }, |
| 17865 | .{ ._, ._, .@"or", .tmp1q, .tmp7q, ._, ._ }, | 17864 | .{ ._, ._, .@"or", .tmp1q, .tmp7q, ._, ._ }, |
| 17866 | .{ ._, ._, .lea, .tmp0d, .lead(.none, .tmp0, 1), ._, ._ }, | 17865 | .{ ._, ._, .lea, .tmp0d, .lead(.tmp0, 1), ._, ._ }, |
| 17867 | .{ ._, ._, .@"test", .tmp0d, .si(0b111111), ._, ._ }, | 17866 | .{ ._, ._, .@"test", .tmp0d, .si(0b111111), ._, ._ }, |
| 17868 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, | 17867 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, |
| 17869 | .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ }, | 17868 | .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ }, |
| ... | @@ -17966,8 +17965,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -17966,8 +17965,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 17966 | .ne => .neq, | 17965 | .ne => .neq, |
| 17967 | }) }, | 17966 | }) }, |
| 17968 | .{ ._, .v_ps, .movmsk, .tmp3d, .tmp2y, ._, ._ }, | 17967 | .{ ._, .v_ps, .movmsk, .tmp3d, .tmp2y, ._, ._ }, |
| 17969 | .{ ._, ._, .mov, .lea(.byte, .tmp1), .tmp3b, ._, ._ }, | 17968 | .{ ._, ._, .mov, .lea(.tmp1b), .tmp3b, ._, ._ }, |
| 17970 | .{ ._, ._, .lea, .tmp1p, .lead(.none, .tmp1, 1), ._, ._ }, | 17969 | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 1), ._, ._ }, |
| 17971 | .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, | 17970 | .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, |
| 17972 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 17971 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 17973 | } }, | 17972 | } }, |
| ... | @@ -18003,7 +18002,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -18003,7 +18002,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 18003 | .ne => .neq, | 18002 | .ne => .neq, |
| 18004 | }) }, | 18003 | }) }, |
| 18005 | .{ ._, .v_ps, .movmsk, .tmp3d, .tmp2y, ._, ._ }, | 18004 | .{ ._, .v_ps, .movmsk, .tmp3d, .tmp2y, ._, ._ }, |
| 18006 | .{ ._, ._, .mov, .lea(.byte, .tmp1), .tmp3b, ._, ._ }, | 18005 | .{ ._, ._, .mov, .lea(.tmp1b), .tmp3b, ._, ._ }, |
| 18007 | .{ ._, ._c, .in, .tmp1q, ._, ._, ._ }, | 18006 | .{ ._, ._c, .in, .tmp1q, ._, ._, ._ }, |
| 18008 | .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, | 18007 | .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, |
| 18009 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 18008 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| ... | @@ -18048,8 +18047,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -18048,8 +18047,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 18048 | .{ ._, .p_w, .ackssd, .tmp2x, .tmp3x, ._, ._ }, | 18047 | .{ ._, .p_w, .ackssd, .tmp2x, .tmp3x, ._, ._ }, |
| 18049 | .{ ._, .p_b, .ackssw, .tmp2x, .tmp2x, ._, ._ }, | 18048 | .{ ._, .p_b, .ackssw, .tmp2x, .tmp2x, ._, ._ }, |
| 18050 | .{ ._, .p_b, .movmsk, .tmp4d, .tmp2x, ._, ._ }, | 18049 | .{ ._, .p_b, .movmsk, .tmp4d, .tmp2x, ._, ._ }, |
| 18051 | .{ ._, ._, .mov, .lea(.byte, .tmp1), .tmp4b, ._, ._ }, | 18050 | .{ ._, ._, .mov, .lea(.tmp1b), .tmp4b, ._, ._ }, |
| 18052 | .{ ._, ._, .lea, .tmp1p, .lead(.none, .tmp1, 1), ._, ._ }, | 18051 | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 1), ._, ._ }, |
| 18053 | .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, | 18052 | .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, |
| 18054 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 18053 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 18055 | } }, | 18054 | } }, |
| ... | @@ -18094,8 +18093,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -18094,8 +18093,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 18094 | .{ ._, ._ps, .movmsk, .tmp4d, .tmp2x, ._, ._ }, | 18093 | .{ ._, ._ps, .movmsk, .tmp4d, .tmp2x, ._, ._ }, |
| 18095 | .{ ._, ._l, .sh, .tmp4b, .ui(4), ._, ._ }, | 18094 | .{ ._, ._l, .sh, .tmp4b, .ui(4), ._, ._ }, |
| 18096 | .{ ._, ._, .@"or", .tmp3b, .tmp4b, ._, ._ }, | 18095 | .{ ._, ._, .@"or", .tmp3b, .tmp4b, ._, ._ }, |
| 18097 | .{ ._, ._, .mov, .lea(.byte, .tmp1), .tmp3b, ._, ._ }, | 18096 | .{ ._, ._, .mov, .lea(.tmp1b), .tmp3b, ._, ._ }, |
| 18098 | .{ ._, ._, .lea, .tmp1p, .lead(.none, .tmp1, 1), ._, ._ }, | 18097 | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 1), ._, ._ }, |
| 18099 | .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, | 18098 | .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, |
| 18100 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 18099 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 18101 | } }, | 18100 | } }, |
| ... | @@ -18134,8 +18133,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -18134,8 +18133,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 18134 | .{ ._, ._ps, .movmsk, .tmp4d, .tmp2x, ._, ._ }, | 18133 | .{ ._, ._ps, .movmsk, .tmp4d, .tmp2x, ._, ._ }, |
| 18135 | .{ ._, ._l, .sh, .tmp4b, .ui(4), ._, ._ }, | 18134 | .{ ._, ._l, .sh, .tmp4b, .ui(4), ._, ._ }, |
| 18136 | .{ ._, ._, .@"or", .tmp3b, .tmp4b, ._, ._ }, | 18135 | .{ ._, ._, .@"or", .tmp3b, .tmp4b, ._, ._ }, |
| 18137 | .{ ._, ._, .mov, .lea(.byte, .tmp1), .tmp3b, ._, ._ }, | 18136 | .{ ._, ._, .mov, .lea(.tmp1b), .tmp3b, ._, ._ }, |
| 18138 | .{ ._, ._, .lea, .tmp1p, .lead(.none, .tmp1, 1), ._, ._ }, | 18137 | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 1), ._, ._ }, |
| 18139 | .{ .@"1:", ._ps, .mova, .tmp2x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, | 18138 | .{ .@"1:", ._ps, .mova, .tmp2x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, |
| 18140 | .{ ._, ._ps, .cmp, .tmp2x, .memia(.src1x, .tmp0, .add_size), .vp(switch (cc) { | 18139 | .{ ._, ._ps, .cmp, .tmp2x, .memia(.src1x, .tmp0, .add_size), .vp(switch (cc) { |
| 18141 | else => unreachable, | 18140 | else => unreachable, |
| ... | @@ -18145,7 +18144,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -18145,7 +18144,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 18145 | .{ ._, ._ps, .movmsk, .tmp3d, .tmp2x, ._, ._ }, | 18144 | .{ ._, ._ps, .movmsk, .tmp3d, .tmp2x, ._, ._ }, |
| 18146 | .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, | 18145 | .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, |
| 18147 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 18146 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 18148 | .{ ._, ._, .mov, .lea(.byte, .tmp1), .tmp3b, ._, ._ }, | 18147 | .{ ._, ._, .mov, .lea(.tmp1b), .tmp3b, ._, ._ }, |
| 18149 | } }, | 18148 | } }, |
| 18150 | }, .{ | 18149 | }, .{ |
| 18151 | .required_features = .{ .avx, .slow_incdec, null, null }, | 18150 | .required_features = .{ .avx, .slow_incdec, null, null }, |
| ... | @@ -18188,8 +18187,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -18188,8 +18187,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 18188 | .{ ._, .v_pd, .movmsk, .tmp5d, .tmp3y, ._, ._ }, | 18187 | .{ ._, .v_pd, .movmsk, .tmp5d, .tmp3y, ._, ._ }, |
| 18189 | .{ ._, ._l, .sh, .tmp5b, .ui(4), ._, ._ }, | 18188 | .{ ._, ._l, .sh, .tmp5b, .ui(4), ._, ._ }, |
| 18190 | .{ ._, ._, .@"or", .tmp4b, .tmp5b, ._, ._ }, | 18189 | .{ ._, ._, .@"or", .tmp4b, .tmp5b, ._, ._ }, |
| 18191 | .{ ._, ._, .mov, .lea(.byte, .tmp1), .tmp4b, ._, ._ }, | 18190 | .{ ._, ._, .mov, .lea(.tmp1b), .tmp4b, ._, ._ }, |
| 18192 | .{ ._, ._, .lea, .tmp1p, .lead(.none, .tmp1, 1), ._, ._ }, | 18191 | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 1), ._, ._ }, |
| 18193 | .{ ._, ._, .add, .tmp0p, .si(64), ._, ._ }, | 18192 | .{ ._, ._, .add, .tmp0p, .si(64), ._, ._ }, |
| 18194 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 18193 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 18195 | } }, | 18194 | } }, |
| ... | @@ -18234,7 +18233,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -18234,7 +18233,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 18234 | .{ ._, .v_pd, .movmsk, .tmp5d, .tmp3y, ._, ._ }, | 18233 | .{ ._, .v_pd, .movmsk, .tmp5d, .tmp3y, ._, ._ }, |
| 18235 | .{ ._, ._l, .sh, .tmp5b, .ui(4), ._, ._ }, | 18234 | .{ ._, ._l, .sh, .tmp5b, .ui(4), ._, ._ }, |
| 18236 | .{ ._, ._, .@"or", .tmp4b, .tmp5b, ._, ._ }, | 18235 | .{ ._, ._, .@"or", .tmp4b, .tmp5b, ._, ._ }, |
| 18237 | .{ ._, ._, .mov, .lea(.byte, .tmp1), .tmp4b, ._, ._ }, | 18236 | .{ ._, ._, .mov, .lea(.tmp1b), .tmp4b, ._, ._ }, |
| 18238 | .{ ._, ._c, .in, .tmp1q, ._, ._, ._ }, | 18237 | .{ ._, ._c, .in, .tmp1q, ._, ._, ._ }, |
| 18239 | .{ ._, ._, .add, .tmp0p, .si(64), ._, ._ }, | 18238 | .{ ._, ._, .add, .tmp0p, .si(64), ._, ._ }, |
| 18240 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 18239 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| ... | @@ -18274,7 +18273,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -18274,7 +18273,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 18274 | .{ ._, .v_pd, .movmsk, .tmp4d, .tmp3y, ._, ._ }, | 18273 | .{ ._, .v_pd, .movmsk, .tmp4d, .tmp3y, ._, ._ }, |
| 18275 | .{ ._, ._l, .ro, .tmp4b, .tmp1b, ._, ._ }, | 18274 | .{ ._, ._l, .ro, .tmp4b, .tmp1b, ._, ._ }, |
| 18276 | .{ ._, ._, .@"or", .tmp2b, .tmp4b, ._, ._ }, | 18275 | .{ ._, ._, .@"or", .tmp2b, .tmp4b, ._, ._ }, |
| 18277 | .{ ._, ._, .lea, .tmp1d, .lead(.none, .tmp1, 4), ._, ._ }, | 18276 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 4), ._, ._ }, |
| 18278 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, | 18277 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, |
| 18279 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, | 18278 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, |
| 18280 | .{ ._, ._, .mov, .tmp4d, .tmp1d, ._, ._ }, | 18279 | .{ ._, ._, .mov, .tmp4d, .tmp1d, ._, ._ }, |
| ... | @@ -18323,7 +18322,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -18323,7 +18322,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 18323 | .{ ._, ._pd, .movmsk, .tmp4d, .tmp3x, ._, ._ }, | 18322 | .{ ._, ._pd, .movmsk, .tmp4d, .tmp3x, ._, ._ }, |
| 18324 | .{ ._, ._l, .ro, .tmp4b, .tmp1b, ._, ._ }, | 18323 | .{ ._, ._l, .ro, .tmp4b, .tmp1b, ._, ._ }, |
| 18325 | .{ ._, ._, .@"or", .tmp2b, .tmp4b, ._, ._ }, | 18324 | .{ ._, ._, .@"or", .tmp2b, .tmp4b, ._, ._ }, |
| 18326 | .{ ._, ._, .lea, .tmp1d, .lead(.none, .tmp1, 2), ._, ._ }, | 18325 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 2), ._, ._ }, |
| 18327 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, | 18326 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, |
| 18328 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, | 18327 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, |
| 18329 | .{ ._, ._, .mov, .tmp4d, .tmp1d, ._, ._ }, | 18328 | .{ ._, ._, .mov, .tmp4d, .tmp1d, ._, ._ }, |
| ... | @@ -18382,7 +18381,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -18382,7 +18381,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 18382 | }, .tmp3b, .tmp4b, ._, ._ }, | 18381 | }, .tmp3b, .tmp4b, ._, ._ }, |
| 18383 | .{ ._, ._l, .ro, .tmp3b, .tmp1b, ._, ._ }, | 18382 | .{ ._, ._l, .ro, .tmp3b, .tmp1b, ._, ._ }, |
| 18384 | .{ ._, ._, .@"or", .tmp2b, .tmp3b, ._, ._ }, | 18383 | .{ ._, ._, .@"or", .tmp2b, .tmp3b, ._, ._ }, |
| 18385 | .{ ._, ._, .lea, .tmp1d, .lead(.none, .tmp1, 1), ._, ._ }, | 18384 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 1), ._, ._ }, |
| 18386 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, | 18385 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, |
| 18387 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, | 18386 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, |
| 18388 | .{ ._, ._, .mov, .tmp3d, .tmp1d, ._, ._ }, | 18387 | .{ ._, ._, .mov, .tmp3d, .tmp1d, ._, ._ }, |
| ... | @@ -18550,7 +18549,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -18550,7 +18549,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 18550 | }, .tmp3b, .tmp4b, ._, ._ }, | 18549 | }, .tmp3b, .tmp4b, ._, ._ }, |
| 18551 | .{ ._, ._l, .ro, .tmp3b, .tmp1b, ._, ._ }, | 18550 | .{ ._, ._l, .ro, .tmp3b, .tmp1b, ._, ._ }, |
| 18552 | .{ ._, ._, .@"or", .tmp2b, .tmp3b, ._, ._ }, | 18551 | .{ ._, ._, .@"or", .tmp2b, .tmp3b, ._, ._ }, |
| 18553 | .{ ._, ._, .lea, .tmp1d, .lead(.none, .tmp1, 1), ._, ._ }, | 18552 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 1), ._, ._ }, |
| 18554 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, | 18553 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, |
| 18555 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, | 18554 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, |
| 18556 | .{ ._, ._, .mov, .tmp3d, .tmp1d, ._, ._ }, | 18555 | .{ ._, ._, .mov, .tmp3d, .tmp1d, ._, ._ }, |
| ... | @@ -18675,11 +18674,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -18675,11 +18674,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 18675 | } }, | 18674 | } }, |
| 18676 | }, .{ | 18675 | }, .{ |
| 18677 | .required_features = .{ .avx, .slow_incdec, null, null }, | 18676 | .required_features = .{ .avx, .slow_incdec, null, null }, |
| 18678 | .dst_constraints = .{.{ .bool_vec = .dword }}, | ||
| 18679 | .src_constraints = .{ | 18677 | .src_constraints = .{ |
| 18680 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, | 18678 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, |
| 18681 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, | 18679 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, |
| 18682 | }, | 18680 | }, |
| 18681 | .dst_constraints = .{.{ .bool_vec = .dword }}, | ||
| 18683 | .patterns = &.{ | 18682 | .patterns = &.{ |
| 18684 | .{ .src = .{ .to_mem, .to_mem } }, | 18683 | .{ .src = .{ .to_mem, .to_mem } }, |
| 18685 | }, | 18684 | }, |
| ... | @@ -18714,17 +18713,17 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -18714,17 +18713,17 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 18714 | .{ ._, ._, .mov, .tmp6d, .tmp1d, ._, ._ }, | 18713 | .{ ._, ._, .mov, .tmp6d, .tmp1d, ._, ._ }, |
| 18715 | .{ ._, ._l, .sh, .tmp7d, .tmp6b, ._, ._ }, | 18714 | .{ ._, ._l, .sh, .tmp7d, .tmp6b, ._, ._ }, |
| 18716 | .{ ._, ._, .@"or", .dst0d, .tmp7d, ._, ._ }, | 18715 | .{ ._, ._, .@"or", .dst0d, .tmp7d, ._, ._ }, |
| 18717 | .{ ._, ._, .lea, .tmp1d, .lead(.none, .tmp1, 1), ._, ._ }, | 18716 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 1), ._, ._ }, |
| 18718 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | 18717 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 18719 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 18718 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 18720 | } }, | 18719 | } }, |
| 18721 | }, .{ | 18720 | }, .{ |
| 18722 | .required_features = .{ .avx, .slow_incdec, null, null }, | 18721 | .required_features = .{ .avx, .slow_incdec, null, null }, |
| 18723 | .dst_constraints = .{.{ .bool_vec = .dword }}, | ||
| 18724 | .src_constraints = .{ | 18722 | .src_constraints = .{ |
| 18725 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, | 18723 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, |
| 18726 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, | 18724 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, |
| 18727 | }, | 18725 | }, |
| 18726 | .dst_constraints = .{.{ .bool_vec = .dword }}, | ||
| 18728 | .patterns = &.{ | 18727 | .patterns = &.{ |
| 18729 | .{ .src = .{ .to_mem, .to_mem } }, | 18728 | .{ .src = .{ .to_mem, .to_mem } }, |
| 18730 | }, | 18729 | }, |
| ... | @@ -18765,11 +18764,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -18765,11 +18764,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 18765 | } }, | 18764 | } }, |
| 18766 | }, .{ | 18765 | }, .{ |
| 18767 | .required_features = .{ .sse2, .slow_incdec, null, null }, | 18766 | .required_features = .{ .sse2, .slow_incdec, null, null }, |
| 18768 | .dst_constraints = .{.{ .bool_vec = .dword }}, | ||
| 18769 | .src_constraints = .{ | 18767 | .src_constraints = .{ |
| 18770 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, | 18768 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, |
| 18771 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, | 18769 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, |
| 18772 | }, | 18770 | }, |
| 18771 | .dst_constraints = .{.{ .bool_vec = .dword }}, | ||
| 18773 | .patterns = &.{ | 18772 | .patterns = &.{ |
| 18774 | .{ .src = .{ .to_mem, .to_mem } }, | 18773 | .{ .src = .{ .to_mem, .to_mem } }, |
| 18775 | }, | 18774 | }, |
| ... | @@ -18804,17 +18803,17 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -18804,17 +18803,17 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 18804 | .{ ._, ._, .mov, .tmp6d, .tmp1d, ._, ._ }, | 18803 | .{ ._, ._, .mov, .tmp6d, .tmp1d, ._, ._ }, |
| 18805 | .{ ._, ._l, .sh, .tmp7d, .tmp6b, ._, ._ }, | 18804 | .{ ._, ._l, .sh, .tmp7d, .tmp6b, ._, ._ }, |
| 18806 | .{ ._, ._, .@"or", .dst0d, .tmp7d, ._, ._ }, | 18805 | .{ ._, ._, .@"or", .dst0d, .tmp7d, ._, ._ }, |
| 18807 | .{ ._, ._, .lea, .tmp1d, .lead(.none, .tmp1, 1), ._, ._ }, | 18806 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 1), ._, ._ }, |
| 18808 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | 18807 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 18809 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 18808 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 18810 | } }, | 18809 | } }, |
| 18811 | }, .{ | 18810 | }, .{ |
| 18812 | .required_features = .{ .sse2, .slow_incdec, null, null }, | 18811 | .required_features = .{ .sse2, .slow_incdec, null, null }, |
| 18813 | .dst_constraints = .{.{ .bool_vec = .dword }}, | ||
| 18814 | .src_constraints = .{ | 18812 | .src_constraints = .{ |
| 18815 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, | 18813 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, |
| 18816 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, | 18814 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, |
| 18817 | }, | 18815 | }, |
| 18816 | .dst_constraints = .{.{ .bool_vec = .dword }}, | ||
| 18818 | .patterns = &.{ | 18817 | .patterns = &.{ |
| 18819 | .{ .src = .{ .to_mem, .to_mem } }, | 18818 | .{ .src = .{ .to_mem, .to_mem } }, |
| 18820 | }, | 18819 | }, |
| ... | @@ -18855,11 +18854,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -18855,11 +18854,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 18855 | } }, | 18854 | } }, |
| 18856 | }, .{ | 18855 | }, .{ |
| 18857 | .required_features = .{ .sse, .slow_incdec, null, null }, | 18856 | .required_features = .{ .sse, .slow_incdec, null, null }, |
| 18858 | .dst_constraints = .{.{ .bool_vec = .dword }}, | ||
| 18859 | .src_constraints = .{ | 18857 | .src_constraints = .{ |
| 18860 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, | 18858 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, |
| 18861 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, | 18859 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, |
| 18862 | }, | 18860 | }, |
| 18861 | .dst_constraints = .{.{ .bool_vec = .dword }}, | ||
| 18863 | .patterns = &.{ | 18862 | .patterns = &.{ |
| 18864 | .{ .src = .{ .to_mem, .to_mem } }, | 18863 | .{ .src = .{ .to_mem, .to_mem } }, |
| 18865 | }, | 18864 | }, |
| ... | @@ -18894,17 +18893,17 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -18894,17 +18893,17 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 18894 | .{ ._, ._, .mov, .tmp6d, .tmp1d, ._, ._ }, | 18893 | .{ ._, ._, .mov, .tmp6d, .tmp1d, ._, ._ }, |
| 18895 | .{ ._, ._l, .sh, .tmp7d, .tmp6b, ._, ._ }, | 18894 | .{ ._, ._l, .sh, .tmp7d, .tmp6b, ._, ._ }, |
| 18896 | .{ ._, ._, .@"or", .dst0d, .tmp7d, ._, ._ }, | 18895 | .{ ._, ._, .@"or", .dst0d, .tmp7d, ._, ._ }, |
| 18897 | .{ ._, ._, .lea, .tmp1d, .lead(.none, .tmp1, 1), ._, ._ }, | 18896 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 1), ._, ._ }, |
| 18898 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | 18897 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 18899 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 18898 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 18900 | } }, | 18899 | } }, |
| 18901 | }, .{ | 18900 | }, .{ |
| 18902 | .required_features = .{ .sse2, .slow_incdec, null, null }, | 18901 | .required_features = .{ .sse2, .slow_incdec, null, null }, |
| 18903 | .dst_constraints = .{.{ .bool_vec = .dword }}, | ||
| 18904 | .src_constraints = .{ | 18902 | .src_constraints = .{ |
| 18905 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, | 18903 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, |
| 18906 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, | 18904 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, |
| 18907 | }, | 18905 | }, |
| 18906 | .dst_constraints = .{.{ .bool_vec = .dword }}, | ||
| 18908 | .patterns = &.{ | 18907 | .patterns = &.{ |
| 18909 | .{ .src = .{ .to_mem, .to_mem } }, | 18908 | .{ .src = .{ .to_mem, .to_mem } }, |
| 18910 | }, | 18909 | }, |
| ... | @@ -18983,7 +18982,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -18983,7 +18982,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 18983 | .{ ._, ._, .mov, .tmp7d, .tmp1d, ._, ._ }, | 18982 | .{ ._, ._, .mov, .tmp7d, .tmp1d, ._, ._ }, |
| 18984 | .{ ._, ._l, .sh, .tmp8q, .tmp7b, ._, ._ }, | 18983 | .{ ._, ._l, .sh, .tmp8q, .tmp7b, ._, ._ }, |
| 18985 | .{ ._, ._, .@"or", .tmp2q, .tmp8q, ._, ._ }, | 18984 | .{ ._, ._, .@"or", .tmp2q, .tmp8q, ._, ._ }, |
| 18986 | .{ ._, ._, .lea, .tmp1d, .lead(.none, .tmp1, 1), ._, ._ }, | 18985 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 1), ._, ._ }, |
| 18987 | .{ ._, ._, .@"test", .tmp1d, .si(0b111111), ._, ._ }, | 18986 | .{ ._, ._, .@"test", .tmp1d, .si(0b111111), ._, ._ }, |
| 18988 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, | 18987 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, |
| 18989 | .{ ._, ._, .mov, .tmp6d, .tmp1d, ._, ._ }, | 18988 | .{ ._, ._, .mov, .tmp6d, .tmp1d, ._, ._ }, |
| ... | @@ -19091,7 +19090,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -19091,7 +19090,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 19091 | .{ ._, ._, .mov, .tmp7d, .tmp1d, ._, ._ }, | 19090 | .{ ._, ._, .mov, .tmp7d, .tmp1d, ._, ._ }, |
| 19092 | .{ ._, ._l, .sh, .tmp8q, .tmp7b, ._, ._ }, | 19091 | .{ ._, ._l, .sh, .tmp8q, .tmp7b, ._, ._ }, |
| 19093 | .{ ._, ._, .@"or", .tmp2q, .tmp8q, ._, ._ }, | 19092 | .{ ._, ._, .@"or", .tmp2q, .tmp8q, ._, ._ }, |
| 19094 | .{ ._, ._, .lea, .tmp1d, .lead(.none, .tmp1, 1), ._, ._ }, | 19093 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 1), ._, ._ }, |
| 19095 | .{ ._, ._, .@"test", .tmp1d, .si(0b111111), ._, ._ }, | 19094 | .{ ._, ._, .@"test", .tmp1d, .si(0b111111), ._, ._ }, |
| 19096 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, | 19095 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, |
| 19097 | .{ ._, ._, .mov, .tmp6d, .tmp1d, ._, ._ }, | 19096 | .{ ._, ._, .mov, .tmp6d, .tmp1d, ._, ._ }, |
| ... | @@ -19199,7 +19198,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -19199,7 +19198,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 19199 | .{ ._, ._, .mov, .tmp7d, .tmp1d, ._, ._ }, | 19198 | .{ ._, ._, .mov, .tmp7d, .tmp1d, ._, ._ }, |
| 19200 | .{ ._, ._l, .sh, .tmp8q, .tmp7b, ._, ._ }, | 19199 | .{ ._, ._l, .sh, .tmp8q, .tmp7b, ._, ._ }, |
| 19201 | .{ ._, ._, .@"or", .tmp2q, .tmp8q, ._, ._ }, | 19200 | .{ ._, ._, .@"or", .tmp2q, .tmp8q, ._, ._ }, |
| 19202 | .{ ._, ._, .lea, .tmp1d, .lead(.none, .tmp1, 1), ._, ._ }, | 19201 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 1), ._, ._ }, |
| 19203 | .{ ._, ._, .@"test", .tmp1d, .si(0b111111), ._, ._ }, | 19202 | .{ ._, ._, .@"test", .tmp1d, .si(0b111111), ._, ._ }, |
| 19204 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, | 19203 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, |
| 19205 | .{ ._, ._, .mov, .tmp6d, .tmp1d, ._, ._ }, | 19204 | .{ ._, ._, .mov, .tmp6d, .tmp1d, ._, ._ }, |
| ... | @@ -20245,10 +20244,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -20245,10 +20244,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 20245 | .{ ._, ._, .sbb, .tmp4q, .tmp2q, ._, ._ }, | 20244 | .{ ._, ._, .sbb, .tmp4q, .tmp2q, ._, ._ }, |
| 20246 | .{ ._, ._c, .set, .tmp3b, ._, ._, ._ }, | 20245 | .{ ._, ._c, .set, .tmp3b, ._, ._, ._ }, |
| 20247 | .{ ._, ._, .mov, .memi(.dst0q, .tmp0), .tmp4q, ._, ._ }, | 20246 | .{ ._, ._, .mov, .memi(.dst0q, .tmp0), .tmp4q, ._, ._ }, |
| 20248 | .{ ._, ._, .lea, .tmp0d, .lead(.none, .tmp0, 8), ._, ._ }, | 20247 | .{ ._, ._, .lea, .tmp0d, .lead(.tmp0, 8), ._, ._ }, |
| 20249 | .{ ._, ._, .sub, .tmp1d, .si(8), ._, ._ }, | 20248 | .{ ._, ._, .sub, .tmp1d, .si(8), ._, ._ }, |
| 20250 | .{ ._, ._a, .j, .@"1b", ._, ._, ._ }, | 20249 | .{ ._, ._a, .j, .@"1b", ._, ._, ._ }, |
| 20251 | .{ ._, ._, .cmp, .tmp0d, .sa(.none, .add_src0_unaligned_size), ._, ._ }, | 20250 | .{ ._, ._, .cmp, .tmp0d, .sa(.src0, .add_unaligned_size), ._, ._ }, |
| 20252 | .{ ._, ._b, .j, .@"0b", ._, ._, ._ }, | 20251 | .{ ._, ._b, .j, .@"0b", ._, ._, ._ }, |
| 20253 | } }, | 20252 | } }, |
| 20254 | }, .{ | 20253 | }, .{ |
| ... | @@ -20271,7 +20270,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -20271,7 +20270,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 20271 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, | 20270 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, |
| 20272 | .each = .{ .once = &.{ | 20271 | .each = .{ .once = &.{ |
| 20273 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, | 20272 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 20274 | .{ ._, .v_ps, .@"and", .dst0x, .src0x, .lea(.xword, .tmp0), ._ }, | 20273 | .{ ._, .v_ps, .@"and", .dst0x, .src0x, .lea(.tmp0x), ._ }, |
| 20275 | } }, | 20274 | } }, |
| 20276 | }, .{ | 20275 | }, .{ |
| 20277 | .required_features = .{ .sse, null, null, null }, | 20276 | .required_features = .{ .sse, null, null, null }, |
| ... | @@ -20293,7 +20292,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -20293,7 +20292,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 20293 | .dst_temps = .{.{ .ref = .src0 }}, | 20292 | .dst_temps = .{.{ .ref = .src0 }}, |
| 20294 | .each = .{ .once = &.{ | 20293 | .each = .{ .once = &.{ |
| 20295 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, | 20294 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 20296 | .{ ._, ._ps, .@"and", .dst0x, .lea(.xword, .tmp0), ._, ._ }, | 20295 | .{ ._, ._ps, .@"and", .dst0x, .lea(.tmp0x), ._, ._ }, |
| 20297 | } }, | 20296 | } }, |
| 20298 | }, .{ | 20297 | }, .{ |
| 20299 | .required_features = .{ .avx, null, null, null }, | 20298 | .required_features = .{ .avx, null, null, null }, |
| ... | @@ -20315,7 +20314,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -20315,7 +20314,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 20315 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, | 20314 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, |
| 20316 | .each = .{ .once = &.{ | 20315 | .each = .{ .once = &.{ |
| 20317 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, | 20316 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 20318 | .{ ._, .v_ps, .@"and", .dst0y, .src0y, .lea(.yword, .tmp0), ._ }, | 20317 | .{ ._, .v_ps, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ }, |
| 20319 | } }, | 20318 | } }, |
| 20320 | }, .{ | 20319 | }, .{ |
| 20321 | .required_features = .{ .avx, null, null, null }, | 20320 | .required_features = .{ .avx, null, null, null }, |
| ... | @@ -20337,7 +20336,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -20337,7 +20336,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 20337 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, | 20336 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, |
| 20338 | .each = .{ .once = &.{ | 20337 | .each = .{ .once = &.{ |
| 20339 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, | 20338 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 20340 | .{ ._, .v_pd, .@"and", .dst0x, .src0x, .lea(.xword, .tmp0), ._ }, | 20339 | .{ ._, .v_pd, .@"and", .dst0x, .src0x, .lea(.tmp0x), ._ }, |
| 20341 | } }, | 20340 | } }, |
| 20342 | }, .{ | 20341 | }, .{ |
| 20343 | .required_features = .{ .sse2, null, null, null }, | 20342 | .required_features = .{ .sse2, null, null, null }, |
| ... | @@ -20359,7 +20358,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -20359,7 +20358,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 20359 | .dst_temps = .{.{ .ref = .src0 }}, | 20358 | .dst_temps = .{.{ .ref = .src0 }}, |
| 20360 | .each = .{ .once = &.{ | 20359 | .each = .{ .once = &.{ |
| 20361 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, | 20360 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 20362 | .{ ._, ._pd, .@"and", .dst0x, .lea(.xword, .tmp0), ._, ._ }, | 20361 | .{ ._, ._pd, .@"and", .dst0x, .lea(.tmp0x), ._, ._ }, |
| 20363 | } }, | 20362 | } }, |
| 20364 | }, .{ | 20363 | }, .{ |
| 20365 | .required_features = .{ .avx, null, null, null }, | 20364 | .required_features = .{ .avx, null, null, null }, |
| ... | @@ -20381,7 +20380,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -20381,7 +20380,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 20381 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, | 20380 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, |
| 20382 | .each = .{ .once = &.{ | 20381 | .each = .{ .once = &.{ |
| 20383 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, | 20382 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 20384 | .{ ._, .v_pd, .@"and", .dst0y, .src0y, .lea(.yword, .tmp0), ._ }, | 20383 | .{ ._, .v_pd, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ }, |
| 20385 | } }, | 20384 | } }, |
| 20386 | }, .{ | 20385 | }, .{ |
| 20387 | .required_features = .{ .x87, null, null, null }, | 20386 | .required_features = .{ .x87, null, null, null }, |
| ... | @@ -20427,7 +20426,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -20427,7 +20426,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 20427 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, | 20426 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, |
| 20428 | .each = .{ .once = &.{ | 20427 | .each = .{ .once = &.{ |
| 20429 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, | 20428 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 20430 | .{ ._, .vp_, .@"and", .dst0x, .src0x, .lea(.xword, .tmp0), ._ }, | 20429 | .{ ._, .vp_, .@"and", .dst0x, .src0x, .lea(.tmp0x), ._ }, |
| 20431 | } }, | 20430 | } }, |
| 20432 | }, .{ | 20431 | }, .{ |
| 20433 | .required_features = .{ .sse2, null, null, null }, | 20432 | .required_features = .{ .sse2, null, null, null }, |
| ... | @@ -20449,7 +20448,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -20449,7 +20448,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 20449 | .dst_temps = .{.{ .ref = .src0 }}, | 20448 | .dst_temps = .{.{ .ref = .src0 }}, |
| 20450 | .each = .{ .once = &.{ | 20449 | .each = .{ .once = &.{ |
| 20451 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, | 20450 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 20452 | .{ ._, .p_, .@"and", .dst0x, .lea(.xword, .tmp0), ._, ._ }, | 20451 | .{ ._, .p_, .@"and", .dst0x, .lea(.tmp0x), ._, ._ }, |
| 20453 | } }, | 20452 | } }, |
| 20454 | }, .{ | 20453 | }, .{ |
| 20455 | .required_features = .{ .sse, null, null, null }, | 20454 | .required_features = .{ .sse, null, null, null }, |
| ... | @@ -20471,7 +20470,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -20471,7 +20470,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 20471 | .dst_temps = .{.{ .ref = .src0 }}, | 20470 | .dst_temps = .{.{ .ref = .src0 }}, |
| 20472 | .each = .{ .once = &.{ | 20471 | .each = .{ .once = &.{ |
| 20473 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, | 20472 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 20474 | .{ ._, ._ps, .@"and", .dst0x, .lea(.xword, .tmp0), ._, ._ }, | 20473 | .{ ._, ._ps, .@"and", .dst0x, .lea(.tmp0x), ._, ._ }, |
| 20475 | } }, | 20474 | } }, |
| 20476 | }, .{ | 20475 | }, .{ |
| 20477 | .required_features = .{ .avx2, null, null, null }, | 20476 | .required_features = .{ .avx2, null, null, null }, |
| ... | @@ -20493,7 +20492,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -20493,7 +20492,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 20493 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, | 20492 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, |
| 20494 | .each = .{ .once = &.{ | 20493 | .each = .{ .once = &.{ |
| 20495 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, | 20494 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 20496 | .{ ._, .vp_, .@"and", .dst0y, .src0y, .lea(.yword, .tmp0), ._ }, | 20495 | .{ ._, .vp_, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ }, |
| 20497 | } }, | 20496 | } }, |
| 20498 | }, .{ | 20497 | }, .{ |
| 20499 | .required_features = .{ .avx, null, null, null }, | 20498 | .required_features = .{ .avx, null, null, null }, |
| ... | @@ -20515,7 +20514,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -20515,7 +20514,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 20515 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, | 20514 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, |
| 20516 | .each = .{ .once = &.{ | 20515 | .each = .{ .once = &.{ |
| 20517 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, | 20516 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 20518 | .{ ._, .v_pd, .@"and", .dst0y, .src0y, .lea(.yword, .tmp0), ._ }, | 20517 | .{ ._, .v_pd, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ }, |
| 20519 | } }, | 20518 | } }, |
| 20520 | }, .{ | 20519 | }, .{ |
| 20521 | .required_features = .{ .avx, null, null, null }, | 20520 | .required_features = .{ .avx, null, null, null }, |
| ... | @@ -20537,7 +20536,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -20537,7 +20536,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 20537 | .dst_temps = .{.mem}, | 20536 | .dst_temps = .{.mem}, |
| 20538 | .each = .{ .once = &.{ | 20537 | .each = .{ .once = &.{ |
| 20539 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, | 20538 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 20540 | .{ ._, .v_ps, .mova, .tmp2y, .lea(.yword, .tmp0), ._, ._ }, | 20539 | .{ ._, .v_ps, .mova, .tmp2y, .lea(.tmp0y), ._, ._ }, |
| 20541 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | 20540 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 20542 | .{ .@"0:", .v_ps, .@"and", .tmp3y, .tmp2y, .memia(.src0y, .tmp0, .add_size), ._ }, | 20541 | .{ .@"0:", .v_ps, .@"and", .tmp3y, .tmp2y, .memia(.src0y, .tmp0, .add_size), ._ }, |
| 20543 | .{ ._, .v_ps, .mova, .memia(.dst0y, .tmp0, .add_size), .tmp3y, ._, ._ }, | 20542 | .{ ._, .v_ps, .mova, .memia(.dst0y, .tmp0, .add_size), .tmp3y, ._, ._ }, |
| ... | @@ -20564,7 +20563,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -20564,7 +20563,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 20564 | .dst_temps = .{.mem}, | 20563 | .dst_temps = .{.mem}, |
| 20565 | .each = .{ .once = &.{ | 20564 | .each = .{ .once = &.{ |
| 20566 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, | 20565 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 20567 | .{ ._, ._ps, .mova, .tmp2x, .lea(.xword, .tmp0), ._, ._ }, | 20566 | .{ ._, ._ps, .mova, .tmp2x, .lea(.tmp0x), ._, ._ }, |
| 20568 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | 20567 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 20569 | .{ .@"0:", ._ps, .mova, .tmp3x, .tmp2x, ._, ._ }, | 20568 | .{ .@"0:", ._ps, .mova, .tmp3x, .tmp2x, ._, ._ }, |
| 20570 | .{ ._, ._ps, .@"and", .tmp3x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, | 20569 | .{ ._, ._ps, .@"and", .tmp3x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, |
| ... | @@ -20592,7 +20591,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -20592,7 +20591,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 20592 | .dst_temps = .{.mem}, | 20591 | .dst_temps = .{.mem}, |
| 20593 | .each = .{ .once = &.{ | 20592 | .each = .{ .once = &.{ |
| 20594 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, | 20593 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 20595 | .{ ._, .v_pd, .mova, .tmp2y, .lea(.yword, .tmp0), ._, ._ }, | 20594 | .{ ._, .v_pd, .mova, .tmp2y, .lea(.tmp0y), ._, ._ }, |
| 20596 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | 20595 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 20597 | .{ .@"0:", .v_pd, .@"and", .tmp3y, .tmp2y, .memia(.src0y, .tmp0, .add_size), ._ }, | 20596 | .{ .@"0:", .v_pd, .@"and", .tmp3y, .tmp2y, .memia(.src0y, .tmp0, .add_size), ._ }, |
| 20598 | .{ ._, .v_pd, .mova, .memia(.dst0y, .tmp0, .add_size), .tmp3y, ._, ._ }, | 20597 | .{ ._, .v_pd, .mova, .memia(.dst0y, .tmp0, .add_size), .tmp3y, ._, ._ }, |
| ... | @@ -20619,7 +20618,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -20619,7 +20618,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 20619 | .dst_temps = .{.mem}, | 20618 | .dst_temps = .{.mem}, |
| 20620 | .each = .{ .once = &.{ | 20619 | .each = .{ .once = &.{ |
| 20621 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, | 20620 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 20622 | .{ ._, ._pd, .mova, .tmp2x, .lea(.xword, .tmp0), ._, ._ }, | 20621 | .{ ._, ._pd, .mova, .tmp2x, .lea(.tmp0x), ._, ._ }, |
| 20623 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | 20622 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 20624 | .{ .@"0:", ._pd, .mova, .tmp3x, .tmp2x, ._, ._ }, | 20623 | .{ .@"0:", ._pd, .mova, .tmp3x, .tmp2x, ._, ._ }, |
| 20625 | .{ ._, ._pd, .@"and", .tmp3x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, | 20624 | .{ ._, ._pd, .@"and", .tmp3x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, |
| ... | @@ -20647,7 +20646,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -20647,7 +20646,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 20647 | .dst_temps = .{.mem}, | 20646 | .dst_temps = .{.mem}, |
| 20648 | .each = .{ .once = &.{ | 20647 | .each = .{ .once = &.{ |
| 20649 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, | 20648 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 20650 | .{ ._, .v_dqa, .mov, .tmp2y, .lea(.yword, .tmp0), ._, ._ }, | 20649 | .{ ._, .v_dqa, .mov, .tmp2y, .lea(.tmp0y), ._, ._ }, |
| 20651 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | 20650 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 20652 | .{ .@"0:", .vp_, .@"and", .tmp3y, .tmp2y, .memia(.src0y, .tmp0, .add_size), ._ }, | 20651 | .{ .@"0:", .vp_, .@"and", .tmp3y, .tmp2y, .memia(.src0y, .tmp0, .add_size), ._ }, |
| 20653 | .{ ._, .v_dqa, .mov, .memia(.dst0y, .tmp0, .add_size), .tmp3y, ._, ._ }, | 20652 | .{ ._, .v_dqa, .mov, .memia(.dst0y, .tmp0, .add_size), .tmp3y, ._, ._ }, |
| ... | @@ -20674,7 +20673,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -20674,7 +20673,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 20674 | .dst_temps = .{.mem}, | 20673 | .dst_temps = .{.mem}, |
| 20675 | .each = .{ .once = &.{ | 20674 | .each = .{ .once = &.{ |
| 20676 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, | 20675 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 20677 | .{ ._, .v_pd, .mova, .tmp2y, .lea(.yword, .tmp0), ._, ._ }, | 20676 | .{ ._, .v_pd, .mova, .tmp2y, .lea(.tmp0y), ._, ._ }, |
| 20678 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | 20677 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 20679 | .{ .@"0:", .v_pd, .@"and", .tmp3y, .tmp2y, .memia(.src0y, .tmp0, .add_size), ._ }, | 20678 | .{ .@"0:", .v_pd, .@"and", .tmp3y, .tmp2y, .memia(.src0y, .tmp0, .add_size), ._ }, |
| 20680 | .{ ._, .v_pd, .mova, .memia(.dst0y, .tmp0, .add_size), .tmp3y, ._, ._ }, | 20679 | .{ ._, .v_pd, .mova, .memia(.dst0y, .tmp0, .add_size), .tmp3y, ._, ._ }, |
| ... | @@ -20701,7 +20700,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -20701,7 +20700,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 20701 | .dst_temps = .{.mem}, | 20700 | .dst_temps = .{.mem}, |
| 20702 | .each = .{ .once = &.{ | 20701 | .each = .{ .once = &.{ |
| 20703 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, | 20702 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 20704 | .{ ._, ._dqa, .mov, .tmp2x, .lea(.xword, .tmp0), ._, ._ }, | 20703 | .{ ._, ._dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ }, |
| 20705 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | 20704 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 20706 | .{ .@"0:", ._dqa, .mov, .tmp3x, .tmp2x, ._, ._ }, | 20705 | .{ .@"0:", ._dqa, .mov, .tmp3x, .tmp2x, ._, ._ }, |
| 20707 | .{ ._, .p_, .@"and", .tmp3x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, | 20706 | .{ ._, .p_, .@"and", .tmp3x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, |
| ... | @@ -20729,7 +20728,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -20729,7 +20728,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 20729 | .dst_temps = .{.mem}, | 20728 | .dst_temps = .{.mem}, |
| 20730 | .each = .{ .once = &.{ | 20729 | .each = .{ .once = &.{ |
| 20731 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, | 20730 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 20732 | .{ ._, ._ps, .mova, .tmp2x, .lea(.xword, .tmp0), ._, ._ }, | 20731 | .{ ._, ._ps, .mova, .tmp2x, .lea(.tmp0x), ._, ._ }, |
| 20733 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | 20732 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 20734 | .{ .@"0:", ._ps, .mova, .tmp3x, .tmp2x, ._, ._ }, | 20733 | .{ .@"0:", ._ps, .mova, .tmp3x, .tmp2x, ._, ._ }, |
| 20735 | .{ ._, ._ps, .@"and", .tmp3x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, | 20734 | .{ ._, ._ps, .@"and", .tmp3x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, |
| ... | @@ -21665,242 +21664,7197 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -21665,242 +21664,7197 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 21665 | }, | 21664 | }, |
| 21666 | } | 21665 | } |
| 21667 | }, | 21666 | }, |
| 21668 | .int => res[0] = ops[0].cmpInts(cmp_op, &ops[1], cg) catch |err| break :err err, | 21667 | .int => res[0] = ops[0].cmpInts(cmp_op, &ops[1], cg) catch |err| break :err err, |
| 21669 | }) catch |err| switch (err) { | 21668 | }) catch |err| switch (err) { |
| 21669 | error.SelectFailed => return cg.fail("failed to select {s} {} {} {}", .{ | ||
| 21670 | @tagName(air_tag), | ||
| 21671 | cg.typeOf(bin_op.lhs).fmt(pt), | ||
| 21672 | ops[0].tracking(cg), | ||
| 21673 | ops[1].tracking(cg), | ||
| 21674 | }), | ||
| 21675 | else => |e| return e, | ||
| 21676 | }; | ||
| 21677 | if (opt_info) |*oi| { | ||
| 21678 | for (ops) |op| for (res) |r| { | ||
| 21679 | if (op.index == r.index) break; | ||
| 21680 | } else try op.die(cg); | ||
| 21681 | try cg.genCopy(.bool, oi.res[0].tracking(cg).short, res[0].tracking(cg).short, .{}); | ||
| 21682 | try res[0].die(cg); | ||
| 21683 | res[0] = oi.res[0]; | ||
| 21684 | try cg.restoreState(oi.state, &oi.deaths, .{ | ||
| 21685 | .emit_instructions = true, | ||
| 21686 | .update_tracking = true, | ||
| 21687 | .resurrect = true, | ||
| 21688 | .close_scope = true, | ||
| 21689 | }); | ||
| 21690 | cg.performReloc(oi.reloc); | ||
| 21691 | @memset(&ops, res[0]); | ||
| 21692 | } | ||
| 21693 | try res[0].finish(inst, &.{ bin_op.lhs, bin_op.rhs }, &ops, cg); | ||
| 21694 | }, | ||
| 21695 | |||
| 21696 | .cond_br => try cg.airCondBr(inst), | ||
| 21697 | .switch_br => try cg.airSwitchBr(inst), | ||
| 21698 | .loop_switch_br => try cg.airLoopSwitchBr(inst), | ||
| 21699 | .switch_dispatch => try cg.airSwitchDispatch(inst), | ||
| 21700 | .@"try", .try_cold => try cg.airTry(inst), | ||
| 21701 | .try_ptr, .try_ptr_cold => try cg.airTryPtr(inst), | ||
| 21702 | .dbg_stmt => if (cg.debug_output != .none) { | ||
| 21703 | const dbg_stmt = air_datas[@intFromEnum(inst)].dbg_stmt; | ||
| 21704 | _ = try cg.addInst(.{ | ||
| 21705 | .tag = .pseudo, | ||
| 21706 | .ops = .pseudo_dbg_line_stmt_line_column, | ||
| 21707 | .data = .{ .line_column = .{ | ||
| 21708 | .line = dbg_stmt.line, | ||
| 21709 | .column = dbg_stmt.column, | ||
| 21710 | } }, | ||
| 21711 | }); | ||
| 21712 | }, | ||
| 21713 | .dbg_empty_stmt => if (cg.debug_output != .none) { | ||
| 21714 | if (cg.mir_instructions.len > 0) { | ||
| 21715 | const prev_mir_op = &cg.mir_instructions.items(.ops)[cg.mir_instructions.len - 1]; | ||
| 21716 | if (prev_mir_op.* == .pseudo_dbg_line_line_column) | ||
| 21717 | prev_mir_op.* = .pseudo_dbg_line_stmt_line_column; | ||
| 21718 | } | ||
| 21719 | try cg.asmOpOnly(.{ ._, .nop }); | ||
| 21720 | }, | ||
| 21721 | .dbg_inline_block => { | ||
| 21722 | const ty_pl = air_datas[@intFromEnum(inst)].ty_pl; | ||
| 21723 | const extra = cg.air.extraData(Air.DbgInlineBlock, ty_pl.payload); | ||
| 21724 | const old_inline_func = cg.inline_func; | ||
| 21725 | defer cg.inline_func = old_inline_func; | ||
| 21726 | cg.inline_func = extra.data.func; | ||
| 21727 | if (cg.debug_output != .none) _ = try cg.addInst(.{ | ||
| 21728 | .tag = .pseudo, | ||
| 21729 | .ops = .pseudo_dbg_enter_inline_func, | ||
| 21730 | .data = .{ .func = extra.data.func }, | ||
| 21731 | }); | ||
| 21732 | try cg.lowerBlock(inst, @ptrCast(cg.air.extra[extra.end..][0..extra.data.body_len])); | ||
| 21733 | if (cg.debug_output != .none) _ = try cg.addInst(.{ | ||
| 21734 | .tag = .pseudo, | ||
| 21735 | .ops = .pseudo_dbg_leave_inline_func, | ||
| 21736 | .data = .{ .func = old_inline_func }, | ||
| 21737 | }); | ||
| 21738 | }, | ||
| 21739 | .dbg_var_ptr, | ||
| 21740 | .dbg_var_val, | ||
| 21741 | .dbg_arg_inline, | ||
| 21742 | => if (use_old) try cg.airDbgVar(inst) else if (cg.debug_output != .none) { | ||
| 21743 | const pl_op = air_datas[@intFromEnum(inst)].pl_op; | ||
| 21744 | var ops = try cg.tempsFromOperands(inst, .{pl_op.operand}); | ||
| 21745 | var mcv = ops[0].tracking(cg).short; | ||
| 21746 | switch (mcv) { | ||
| 21747 | else => {}, | ||
| 21748 | .eflags => |cc| switch (cc) { | ||
| 21749 | else => {}, | ||
| 21750 | // These values would self destruct. Maybe we make them use their | ||
| 21751 | // turing complete dwarf expression interpreters for once? | ||
| 21752 | .z_and_np, .nz_or_p => { | ||
| 21753 | try cg.spillEflagsIfOccupied(); | ||
| 21754 | mcv = ops[0].tracking(cg).short; | ||
| 21755 | }, | ||
| 21756 | }, | ||
| 21757 | } | ||
| 21758 | try cg.genLocalDebugInfo(inst, ops[0].tracking(cg).short); | ||
| 21759 | try ops[0].die(cg); | ||
| 21760 | }, | ||
| 21761 | .is_null_ptr => if (use_old) try cg.airIsNullPtr(inst) else { | ||
| 21762 | const un_op = air_datas[@intFromEnum(inst)].un_op; | ||
| 21763 | const opt_ty = cg.typeOf(un_op).childType(zcu); | ||
| 21764 | const opt_repr_is_pl = opt_ty.optionalReprIsPayload(zcu); | ||
| 21765 | const opt_child_ty = opt_ty.optionalChild(zcu); | ||
| 21766 | const opt_child_abi_size: u31 = @intCast(opt_child_ty.abiSize(zcu)); | ||
| 21767 | var ops = try cg.tempsFromOperands(inst, .{un_op}); | ||
| 21768 | if (!opt_repr_is_pl) try ops[0].toOffset(opt_child_abi_size, cg); | ||
| 21769 | while (try ops[0].toLea(cg)) {} | ||
| 21770 | try cg.asmMemoryImmediate( | ||
| 21771 | .{ ._, .cmp }, | ||
| 21772 | try ops[0].tracking(cg).short.deref().mem(cg, .{ .size = if (!opt_repr_is_pl) | ||
| 21773 | .byte | ||
| 21774 | else if (opt_child_ty.isSlice(zcu)) | ||
| 21775 | .qword | ||
| 21776 | else | ||
| 21777 | .fromSize(opt_child_abi_size) }), | ||
| 21778 | .u(0), | ||
| 21779 | ); | ||
| 21780 | const is_null = try cg.tempInit(.bool, .{ .eflags = .e }); | ||
| 21781 | try is_null.finish(inst, &.{un_op}, &ops, cg); | ||
| 21782 | }, | ||
| 21783 | .is_non_null_ptr => if (use_old) try cg.airIsNonNullPtr(inst) else { | ||
| 21784 | const un_op = air_datas[@intFromEnum(inst)].un_op; | ||
| 21785 | const opt_ty = cg.typeOf(un_op).childType(zcu); | ||
| 21786 | const opt_repr_is_pl = opt_ty.optionalReprIsPayload(zcu); | ||
| 21787 | const opt_child_ty = opt_ty.optionalChild(zcu); | ||
| 21788 | const opt_child_abi_size: u31 = @intCast(opt_child_ty.abiSize(zcu)); | ||
| 21789 | var ops = try cg.tempsFromOperands(inst, .{un_op}); | ||
| 21790 | if (!opt_repr_is_pl) try ops[0].toOffset(opt_child_abi_size, cg); | ||
| 21791 | while (try ops[0].toLea(cg)) {} | ||
| 21792 | try cg.asmMemoryImmediate( | ||
| 21793 | .{ ._, .cmp }, | ||
| 21794 | try ops[0].tracking(cg).short.deref().mem(cg, .{ .size = if (!opt_repr_is_pl) | ||
| 21795 | .byte | ||
| 21796 | else if (opt_child_ty.isSlice(zcu)) | ||
| 21797 | .qword | ||
| 21798 | else | ||
| 21799 | .fromSize(opt_child_abi_size) }), | ||
| 21800 | .u(0), | ||
| 21801 | ); | ||
| 21802 | const is_non_null = try cg.tempInit(.bool, .{ .eflags = .ne }); | ||
| 21803 | try is_non_null.finish(inst, &.{un_op}, &ops, cg); | ||
| 21804 | }, | ||
| 21805 | .is_err_ptr => if (use_old) try cg.airIsErrPtr(inst) else { | ||
| 21806 | const un_op = air_datas[@intFromEnum(inst)].un_op; | ||
| 21807 | const eu_ty = cg.typeOf(un_op).childType(zcu); | ||
| 21808 | const eu_err_ty = eu_ty.errorUnionSet(zcu); | ||
| 21809 | const eu_pl_ty = eu_ty.errorUnionPayload(zcu); | ||
| 21810 | const eu_err_off: i32 = @intCast(codegen.errUnionErrorOffset(eu_pl_ty, zcu)); | ||
| 21811 | var ops = try cg.tempsFromOperands(inst, .{un_op}); | ||
| 21812 | try ops[0].toOffset(eu_err_off, cg); | ||
| 21813 | while (try ops[0].toLea(cg)) {} | ||
| 21814 | try cg.asmMemoryImmediate( | ||
| 21815 | .{ ._, .cmp }, | ||
| 21816 | try ops[0].tracking(cg).short.deref().mem(cg, .{ .size = cg.memSize(eu_err_ty) }), | ||
| 21817 | .u(0), | ||
| 21818 | ); | ||
| 21819 | const is_err = try cg.tempInit(.bool, .{ .eflags = .ne }); | ||
| 21820 | try is_err.finish(inst, &.{un_op}, &ops, cg); | ||
| 21821 | }, | ||
| 21822 | .is_non_err_ptr => if (use_old) try cg.airIsNonErrPtr(inst) else { | ||
| 21823 | const un_op = air_datas[@intFromEnum(inst)].un_op; | ||
| 21824 | const eu_ty = cg.typeOf(un_op).childType(zcu); | ||
| 21825 | const eu_err_ty = eu_ty.errorUnionSet(zcu); | ||
| 21826 | const eu_pl_ty = eu_ty.errorUnionPayload(zcu); | ||
| 21827 | const eu_err_off: i32 = @intCast(codegen.errUnionErrorOffset(eu_pl_ty, zcu)); | ||
| 21828 | var ops = try cg.tempsFromOperands(inst, .{un_op}); | ||
| 21829 | try ops[0].toOffset(eu_err_off, cg); | ||
| 21830 | while (try ops[0].toLea(cg)) {} | ||
| 21831 | try cg.asmMemoryImmediate( | ||
| 21832 | .{ ._, .cmp }, | ||
| 21833 | try ops[0].tracking(cg).short.deref().mem(cg, .{ .size = cg.memSize(eu_err_ty) }), | ||
| 21834 | .u(0), | ||
| 21835 | ); | ||
| 21836 | const is_non_err = try cg.tempInit(.bool, .{ .eflags = .e }); | ||
| 21837 | try is_non_err.finish(inst, &.{un_op}, &ops, cg); | ||
| 21838 | }, | ||
| 21839 | .load => if (use_old) try cg.airLoad(inst) else fallback: { | ||
| 21840 | const ty_op = air_datas[@intFromEnum(inst)].ty_op; | ||
| 21841 | const val_ty = ty_op.ty.toType(); | ||
| 21842 | const ptr_ty = cg.typeOf(ty_op.operand); | ||
| 21843 | const ptr_info = ptr_ty.ptrInfo(zcu); | ||
| 21844 | if (ptr_info.packed_offset.host_size > 0 and | ||
| 21845 | (ptr_info.flags.vector_index == .none or val_ty.toIntern() == .bool_type)) | ||
| 21846 | break :fallback try cg.airLoad(inst); | ||
| 21847 | var ops = try cg.tempsFromOperands(inst, .{ty_op.operand}); | ||
| 21848 | const res = try ops[0].load(val_ty, .{ | ||
| 21849 | .disp = switch (ptr_info.flags.vector_index) { | ||
| 21850 | .none => 0, | ||
| 21851 | .runtime => unreachable, | ||
| 21852 | else => |vector_index| @intCast(val_ty.abiSize(zcu) * @intFromEnum(vector_index)), | ||
| 21853 | }, | ||
| 21854 | }, cg); | ||
| 21855 | try res.finish(inst, &.{ty_op.operand}, &ops, cg); | ||
| 21856 | }, | ||
| 21857 | .ret => try cg.airRet(inst, false), | ||
| 21858 | .ret_safe => try cg.airRet(inst, true), | ||
| 21859 | .ret_load => try cg.airRetLoad(inst), | ||
| 21860 | .store, .store_safe => |air_tag| if (use_old) try cg.airStore(inst, switch (air_tag) { | ||
| 21861 | else => unreachable, | ||
| 21862 | .store => false, | ||
| 21863 | .store_safe => true, | ||
| 21864 | }) else fallback: { | ||
| 21865 | const bin_op = air_datas[@intFromEnum(inst)].bin_op; | ||
| 21866 | const ptr_ty = cg.typeOf(bin_op.lhs); | ||
| 21867 | const ptr_info = ptr_ty.ptrInfo(zcu); | ||
| 21868 | const val_ty = cg.typeOf(bin_op.rhs); | ||
| 21869 | if (ptr_info.packed_offset.host_size > 0 and | ||
| 21870 | (ptr_info.flags.vector_index == .none or val_ty.toIntern() == .bool_type)) | ||
| 21871 | break :fallback try cg.airStore(inst, switch (air_tag) { | ||
| 21872 | else => unreachable, | ||
| 21873 | .store => false, | ||
| 21874 | .store_safe => true, | ||
| 21875 | }); | ||
| 21876 | var ops = try cg.tempsFromOperands(inst, .{ bin_op.lhs, bin_op.rhs }); | ||
| 21877 | try ops[0].store(&ops[1], .{ | ||
| 21878 | .disp = switch (ptr_info.flags.vector_index) { | ||
| 21879 | .none => 0, | ||
| 21880 | .runtime => unreachable, | ||
| 21881 | else => |vector_index| @intCast(val_ty.abiSize(zcu) * @intFromEnum(vector_index)), | ||
| 21882 | }, | ||
| 21883 | .safe = switch (air_tag) { | ||
| 21884 | else => unreachable, | ||
| 21885 | .store => false, | ||
| 21886 | .store_safe => true, | ||
| 21887 | }, | ||
| 21888 | }, cg); | ||
| 21889 | for (ops) |op| try op.die(cg); | ||
| 21890 | }, | ||
| 21891 | .unreach => {}, | ||
| 21892 | .fptrunc => |air_tag| if (use_old) try cg.airFptrunc(inst) else { | ||
| 21893 | const ty_op = air_datas[@intFromEnum(inst)].ty_op; | ||
| 21894 | var ops = try cg.tempsFromOperands(inst, .{ty_op.operand}); | ||
| 21895 | var res: [1]Temp = undefined; | ||
| 21896 | cg.select(&res, &.{ty_op.ty.toType()}, &ops, comptime &.{ .{ | ||
| 21897 | .required_features = .{ .f16c, null, null, null }, | ||
| 21898 | .src_constraints = .{ .{ .scalar_float = .{ .of = .dword, .is = .dword } }, .any }, | ||
| 21899 | .dst_constraints = .{.{ .scalar_float = .{ .of = .word, .is = .word } }}, | ||
| 21900 | .patterns = &.{ | ||
| 21901 | .{ .src = .{ .to_sse, .none } }, | ||
| 21902 | }, | ||
| 21903 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, | ||
| 21904 | .each = .{ .once = &.{ | ||
| 21905 | .{ ._, .v_, .cvtps2ph, .dst0q, .src0x, .rm(.{}), ._ }, | ||
| 21906 | } }, | ||
| 21907 | }, .{ | ||
| 21908 | .required_features = .{ .f16c, null, null, null }, | ||
| 21909 | .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .dword } }, .any }, | ||
| 21910 | .dst_constraints = .{.{ .scalar_float = .{ .of = .qword, .is = .word } }}, | ||
| 21911 | .patterns = &.{ | ||
| 21912 | .{ .src = .{ .to_sse, .none } }, | ||
| 21913 | }, | ||
| 21914 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, | ||
| 21915 | .each = .{ .once = &.{ | ||
| 21916 | .{ ._, .v_, .cvtps2ph, .dst0q, .src0x, .rm(.{}), ._ }, | ||
| 21917 | } }, | ||
| 21918 | }, .{ | ||
| 21919 | .required_features = .{ .f16c, null, null, null }, | ||
| 21920 | .src_constraints = .{ .{ .scalar_float = .{ .of = .yword, .is = .dword } }, .any }, | ||
| 21921 | .dst_constraints = .{.{ .scalar_float = .{ .of = .xword, .is = .word } }}, | ||
| 21922 | .patterns = &.{ | ||
| 21923 | .{ .src = .{ .to_sse, .none } }, | ||
| 21924 | }, | ||
| 21925 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, | ||
| 21926 | .each = .{ .once = &.{ | ||
| 21927 | .{ ._, .v_, .cvtps2ph, .dst0x, .src0y, .rm(.{}), ._ }, | ||
| 21928 | } }, | ||
| 21929 | }, .{ | ||
| 21930 | .required_features = .{ .sse, null, null, null }, | ||
| 21931 | .src_constraints = .{ .{ .scalar_float = .{ .of = .dword, .is = .dword } }, .any }, | ||
| 21932 | .dst_constraints = .{.{ .scalar_float = .{ .of = .word, .is = .word } }}, | ||
| 21933 | .patterns = &.{ | ||
| 21934 | .{ .src = .{ .{ .to_reg = .xmm0 }, .none } }, | ||
| 21935 | }, | ||
| 21936 | .call_frame = .{ .alignment = .@"16" }, | ||
| 21937 | .extra_temps = .{ | ||
| 21938 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__truncsfhf2" } } }, | ||
| 21939 | .unused, | ||
| 21940 | .unused, | ||
| 21941 | .unused, | ||
| 21942 | .unused, | ||
| 21943 | .unused, | ||
| 21944 | .unused, | ||
| 21945 | .unused, | ||
| 21946 | .unused, | ||
| 21947 | }, | ||
| 21948 | .dst_temps = .{.{ .ref = .src0 }}, | ||
| 21949 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | ||
| 21950 | .each = .{ .once = &.{ | ||
| 21951 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, | ||
| 21952 | } }, | ||
| 21953 | }, .{ | ||
| 21954 | .required_features = .{ .f16c, null, null, null }, | ||
| 21955 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } }, .any }, | ||
| 21956 | .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .word } }}, | ||
| 21957 | .patterns = &.{ | ||
| 21958 | .{ .src = .{ .to_mem, .none } }, | ||
| 21959 | }, | ||
| 21960 | .extra_temps = .{ | ||
| 21961 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 21962 | .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } }, | ||
| 21963 | .unused, | ||
| 21964 | .unused, | ||
| 21965 | .unused, | ||
| 21966 | .unused, | ||
| 21967 | .unused, | ||
| 21968 | .unused, | ||
| 21969 | .unused, | ||
| 21970 | }, | ||
| 21971 | .dst_temps = .{.mem}, | ||
| 21972 | .clobbers = .{ .eflags = true }, | ||
| 21973 | .each = .{ .once = &.{ | ||
| 21974 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_size), ._, ._ }, | ||
| 21975 | .{ .@"0:", .v_ps, .mova, .tmp1y, .memsia(.src0y, .@"2", .tmp0, .add_size), ._, ._ }, | ||
| 21976 | .{ ._, .v_, .cvtps2ph, .memia(.dst0x, .tmp0, .add_size), .tmp1y, .rm(.{}), ._ }, | ||
| 21977 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | ||
| 21978 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 21979 | } }, | ||
| 21980 | }, .{ | ||
| 21981 | .required_features = .{ .avx, null, null, null }, | ||
| 21982 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, | ||
| 21983 | .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .word, .is = .word } }}, | ||
| 21984 | .patterns = &.{ | ||
| 21985 | .{ .src = .{ .to_mem, .none } }, | ||
| 21986 | }, | ||
| 21987 | .call_frame = .{ .alignment = .@"16" }, | ||
| 21988 | .extra_temps = .{ | ||
| 21989 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 21990 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, | ||
| 21991 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__truncsfhf2" } } }, | ||
| 21992 | .unused, | ||
| 21993 | .unused, | ||
| 21994 | .unused, | ||
| 21995 | .unused, | ||
| 21996 | .unused, | ||
| 21997 | .unused, | ||
| 21998 | }, | ||
| 21999 | .dst_temps = .{.mem}, | ||
| 22000 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | ||
| 22001 | .each = .{ .once = &.{ | ||
| 22002 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | ||
| 22003 | .{ .@"0:", .v_ss, .mov, .tmp1x, .memsia(.src0d, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, | ||
| 22004 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | ||
| 22005 | .{ ._, .vp_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1x, .ui(0), ._ }, | ||
| 22006 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | ||
| 22007 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 22008 | } }, | ||
| 22009 | }, .{ | ||
| 22010 | .required_features = .{ .sse4_1, null, null, null }, | ||
| 22011 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, | ||
| 22012 | .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .word, .is = .word } }}, | ||
| 22013 | .patterns = &.{ | ||
| 22014 | .{ .src = .{ .to_mem, .none } }, | ||
| 22015 | }, | ||
| 22016 | .call_frame = .{ .alignment = .@"16" }, | ||
| 22017 | .extra_temps = .{ | ||
| 22018 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 22019 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, | ||
| 22020 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__truncsfhf2" } } }, | ||
| 22021 | .unused, | ||
| 22022 | .unused, | ||
| 22023 | .unused, | ||
| 22024 | .unused, | ||
| 22025 | .unused, | ||
| 22026 | .unused, | ||
| 22027 | }, | ||
| 22028 | .dst_temps = .{.mem}, | ||
| 22029 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | ||
| 22030 | .each = .{ .once = &.{ | ||
| 22031 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | ||
| 22032 | .{ .@"0:", ._ss, .mov, .tmp1x, .memsia(.src0d, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, | ||
| 22033 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | ||
| 22034 | .{ ._, .p_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1x, .ui(0), ._ }, | ||
| 22035 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | ||
| 22036 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 22037 | } }, | ||
| 22038 | }, .{ | ||
| 22039 | .required_features = .{ .sse2, null, null, null }, | ||
| 22040 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, | ||
| 22041 | .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .word, .is = .word } }}, | ||
| 22042 | .patterns = &.{ | ||
| 22043 | .{ .src = .{ .to_mem, .none } }, | ||
| 22044 | }, | ||
| 22045 | .call_frame = .{ .alignment = .@"16" }, | ||
| 22046 | .extra_temps = .{ | ||
| 22047 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 22048 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, | ||
| 22049 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__truncsfhf2" } } }, | ||
| 22050 | .{ .type = .f16, .kind = .{ .reg = .ax } }, | ||
| 22051 | .unused, | ||
| 22052 | .unused, | ||
| 22053 | .unused, | ||
| 22054 | .unused, | ||
| 22055 | .unused, | ||
| 22056 | }, | ||
| 22057 | .dst_temps = .{.mem}, | ||
| 22058 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | ||
| 22059 | .each = .{ .once = &.{ | ||
| 22060 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | ||
| 22061 | .{ .@"0:", ._ss, .mov, .tmp1x, .memsia(.src0d, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, | ||
| 22062 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | ||
| 22063 | .{ ._, .p_w, .extr, .tmp3d, .tmp1x, .ui(0), ._ }, | ||
| 22064 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp3w, ._, ._ }, | ||
| 22065 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | ||
| 22066 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 22067 | } }, | ||
| 22068 | }, .{ | ||
| 22069 | .required_features = .{ .sse, null, null, null }, | ||
| 22070 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, | ||
| 22071 | .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .word, .is = .word } }}, | ||
| 22072 | .patterns = &.{ | ||
| 22073 | .{ .src = .{ .to_mem, .none } }, | ||
| 22074 | }, | ||
| 22075 | .call_frame = .{ .alignment = .@"16" }, | ||
| 22076 | .extra_temps = .{ | ||
| 22077 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 22078 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | ||
| 22079 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__truncsfhf2" } } }, | ||
| 22080 | .{ .type = .f32, .kind = .mem }, | ||
| 22081 | .{ .type = .f16, .kind = .{ .reg = .ax } }, | ||
| 22082 | .unused, | ||
| 22083 | .unused, | ||
| 22084 | .unused, | ||
| 22085 | .unused, | ||
| 22086 | }, | ||
| 22087 | .dst_temps = .{.mem}, | ||
| 22088 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | ||
| 22089 | .each = .{ .once = &.{ | ||
| 22090 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | ||
| 22091 | .{ .@"0:", ._ss, .mov, .tmp1x, .memsia(.src0d, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, | ||
| 22092 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | ||
| 22093 | .{ ._, ._ss, .mov, .mem(.tmp3d), .tmp1x, ._, ._ }, | ||
| 22094 | .{ ._, ._, .mov, .tmp4d, .mem(.tmp3d), ._, ._ }, | ||
| 22095 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp4w, ._, ._ }, | ||
| 22096 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | ||
| 22097 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 22098 | } }, | ||
| 22099 | }, .{ | ||
| 22100 | .required_features = .{ .sse, null, null, null }, | ||
| 22101 | .src_constraints = .{ .{ .scalar_float = .{ .of = .qword, .is = .qword } }, .any }, | ||
| 22102 | .dst_constraints = .{.{ .scalar_float = .{ .of = .word, .is = .word } }}, | ||
| 22103 | .patterns = &.{ | ||
| 22104 | .{ .src = .{ .{ .to_reg = .xmm0 }, .none } }, | ||
| 22105 | }, | ||
| 22106 | .call_frame = .{ .alignment = .@"16" }, | ||
| 22107 | .extra_temps = .{ | ||
| 22108 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__truncdfhf2" } } }, | ||
| 22109 | .unused, | ||
| 22110 | .unused, | ||
| 22111 | .unused, | ||
| 22112 | .unused, | ||
| 22113 | .unused, | ||
| 22114 | .unused, | ||
| 22115 | .unused, | ||
| 22116 | .unused, | ||
| 22117 | }, | ||
| 22118 | .dst_temps = .{.{ .ref = .src0 }}, | ||
| 22119 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | ||
| 22120 | .each = .{ .once = &.{ | ||
| 22121 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, | ||
| 22122 | } }, | ||
| 22123 | }, .{ | ||
| 22124 | .required_features = .{ .avx, null, null, null }, | ||
| 22125 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, | ||
| 22126 | .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .word, .is = .word } }}, | ||
| 22127 | .patterns = &.{ | ||
| 22128 | .{ .src = .{ .to_mem, .none } }, | ||
| 22129 | }, | ||
| 22130 | .call_frame = .{ .alignment = .@"16" }, | ||
| 22131 | .extra_temps = .{ | ||
| 22132 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 22133 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, | ||
| 22134 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__truncdfhf2" } } }, | ||
| 22135 | .unused, | ||
| 22136 | .unused, | ||
| 22137 | .unused, | ||
| 22138 | .unused, | ||
| 22139 | .unused, | ||
| 22140 | .unused, | ||
| 22141 | }, | ||
| 22142 | .dst_temps = .{.mem}, | ||
| 22143 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | ||
| 22144 | .each = .{ .once = &.{ | ||
| 22145 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | ||
| 22146 | .{ .@"0:", .v_sd, .mov, .tmp1x, .memsia(.src0q, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, | ||
| 22147 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | ||
| 22148 | .{ ._, .vp_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1x, .ui(0), ._ }, | ||
| 22149 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | ||
| 22150 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 22151 | } }, | ||
| 22152 | }, .{ | ||
| 22153 | .required_features = .{ .sse4_1, null, null, null }, | ||
| 22154 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, | ||
| 22155 | .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .word, .is = .word } }}, | ||
| 22156 | .patterns = &.{ | ||
| 22157 | .{ .src = .{ .to_mem, .none } }, | ||
| 22158 | }, | ||
| 22159 | .call_frame = .{ .alignment = .@"16" }, | ||
| 22160 | .extra_temps = .{ | ||
| 22161 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 22162 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, | ||
| 22163 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__truncdfhf2" } } }, | ||
| 22164 | .unused, | ||
| 22165 | .unused, | ||
| 22166 | .unused, | ||
| 22167 | .unused, | ||
| 22168 | .unused, | ||
| 22169 | .unused, | ||
| 22170 | }, | ||
| 22171 | .dst_temps = .{.mem}, | ||
| 22172 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | ||
| 22173 | .each = .{ .once = &.{ | ||
| 22174 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | ||
| 22175 | .{ .@"0:", ._sd, .mov, .tmp1x, .memsia(.src0q, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, | ||
| 22176 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | ||
| 22177 | .{ ._, .p_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1x, .ui(0), ._ }, | ||
| 22178 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | ||
| 22179 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 22180 | } }, | ||
| 22181 | }, .{ | ||
| 22182 | .required_features = .{ .sse2, null, null, null }, | ||
| 22183 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, | ||
| 22184 | .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .word, .is = .word } }}, | ||
| 22185 | .patterns = &.{ | ||
| 22186 | .{ .src = .{ .to_mem, .none } }, | ||
| 22187 | }, | ||
| 22188 | .call_frame = .{ .alignment = .@"16" }, | ||
| 22189 | .extra_temps = .{ | ||
| 22190 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 22191 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, | ||
| 22192 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__truncdfhf2" } } }, | ||
| 22193 | .{ .type = .f16, .kind = .{ .reg = .ax } }, | ||
| 22194 | .unused, | ||
| 22195 | .unused, | ||
| 22196 | .unused, | ||
| 22197 | .unused, | ||
| 22198 | .unused, | ||
| 22199 | }, | ||
| 22200 | .dst_temps = .{.mem}, | ||
| 22201 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | ||
| 22202 | .each = .{ .once = &.{ | ||
| 22203 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | ||
| 22204 | .{ .@"0:", ._sd, .mov, .tmp1x, .memsia(.src0q, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, | ||
| 22205 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | ||
| 22206 | .{ ._, .p_w, .extr, .tmp3d, .tmp1x, .ui(0), ._ }, | ||
| 22207 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp3w, ._, ._ }, | ||
| 22208 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | ||
| 22209 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 22210 | } }, | ||
| 22211 | }, .{ | ||
| 22212 | .required_features = .{ .sse, null, null, null }, | ||
| 22213 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, | ||
| 22214 | .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .word, .is = .word } }}, | ||
| 22215 | .patterns = &.{ | ||
| 22216 | .{ .src = .{ .to_mem, .none } }, | ||
| 22217 | }, | ||
| 22218 | .call_frame = .{ .alignment = .@"16" }, | ||
| 22219 | .extra_temps = .{ | ||
| 22220 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 22221 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, | ||
| 22222 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__truncdfhf2" } } }, | ||
| 22223 | .{ .type = .f32, .kind = .mem }, | ||
| 22224 | .{ .type = .f16, .kind = .{ .reg = .ax } }, | ||
| 22225 | .unused, | ||
| 22226 | .unused, | ||
| 22227 | .unused, | ||
| 22228 | .unused, | ||
| 22229 | }, | ||
| 22230 | .dst_temps = .{.mem}, | ||
| 22231 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | ||
| 22232 | .each = .{ .once = &.{ | ||
| 22233 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | ||
| 22234 | .{ .@"0:", ._ps, .xor, .tmp1x, .tmp1x, ._, ._ }, | ||
| 22235 | .{ ._, ._ps, .movl, .tmp1x, .memsia(.src0q, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, | ||
| 22236 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | ||
| 22237 | .{ ._, ._ss, .mov, .mem(.tmp3d), .tmp1x, ._, ._ }, | ||
| 22238 | .{ ._, ._, .mov, .tmp4d, .mem(.tmp3d), ._, ._ }, | ||
| 22239 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp4w, ._, ._ }, | ||
| 22240 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | ||
| 22241 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 22242 | } }, | ||
| 22243 | }, .{ | ||
| 22244 | .required_features = .{ .avx, null, null, null }, | ||
| 22245 | .src_constraints = .{ .{ .scalar_float = .{ .of = .qword, .is = .qword } }, .any }, | ||
| 22246 | .dst_constraints = .{.{ .scalar_float = .{ .of = .dword, .is = .dword } }}, | ||
| 22247 | .patterns = &.{ | ||
| 22248 | .{ .src = .{ .mem, .none } }, | ||
| 22249 | }, | ||
| 22250 | .dst_temps = .{.{ .rc = .sse }}, | ||
| 22251 | .each = .{ .once = &.{ | ||
| 22252 | .{ ._, .v_ps, .xor, .dst0x, .dst0x, .dst0x, ._ }, | ||
| 22253 | .{ ._, .v_ss, .cvtsd2, .dst0x, .dst0x, .src0q, ._ }, | ||
| 22254 | } }, | ||
| 22255 | }, .{ | ||
| 22256 | .required_features = .{ .avx, null, null, null }, | ||
| 22257 | .src_constraints = .{ .{ .scalar_float = .{ .of = .qword, .is = .qword } }, .any }, | ||
| 22258 | .dst_constraints = .{.{ .scalar_float = .{ .of = .dword, .is = .dword } }}, | ||
| 22259 | .patterns = &.{ | ||
| 22260 | .{ .src = .{ .to_sse, .none } }, | ||
| 22261 | }, | ||
| 22262 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, | ||
| 22263 | .each = .{ .once = &.{ | ||
| 22264 | .{ ._, .v_ss, .cvtsd2, .dst0x, .src0x, .src0q, ._ }, | ||
| 22265 | } }, | ||
| 22266 | }, .{ | ||
| 22267 | .required_features = .{ .sse2, null, null, null }, | ||
| 22268 | .src_constraints = .{ .{ .scalar_float = .{ .of = .qword, .is = .qword } }, .any }, | ||
| 22269 | .dst_constraints = .{.{ .scalar_float = .{ .of = .dword, .is = .dword } }}, | ||
| 22270 | .patterns = &.{ | ||
| 22271 | .{ .src = .{ .mem, .none } }, | ||
| 22272 | .{ .src = .{ .to_sse, .none } }, | ||
| 22273 | }, | ||
| 22274 | .dst_temps = .{.{ .rc = .sse }}, | ||
| 22275 | .each = .{ .once = &.{ | ||
| 22276 | .{ ._, ._ps, .xor, .dst0x, .dst0x, ._, ._ }, | ||
| 22277 | .{ ._, ._ss, .cvtsd2, .dst0x, .src0q, ._, ._ }, | ||
| 22278 | } }, | ||
| 22279 | }, .{ | ||
| 22280 | .required_features = .{ .x87, null, null, null }, | ||
| 22281 | .src_constraints = .{ .{ .scalar_float = .{ .of = .qword, .is = .qword } }, .any }, | ||
| 22282 | .dst_constraints = .{.{ .scalar_float = .{ .of = .dword, .is = .dword } }}, | ||
| 22283 | .patterns = &.{ | ||
| 22284 | .{ .src = .{ .to_mem, .none } }, | ||
| 22285 | }, | ||
| 22286 | .extra_temps = .{ | ||
| 22287 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, | ||
| 22288 | .unused, | ||
| 22289 | .unused, | ||
| 22290 | .unused, | ||
| 22291 | .unused, | ||
| 22292 | .unused, | ||
| 22293 | .unused, | ||
| 22294 | .unused, | ||
| 22295 | .unused, | ||
| 22296 | }, | ||
| 22297 | .dst_temps = .{.mem}, | ||
| 22298 | .each = .{ .once = &.{ | ||
| 22299 | .{ ._, .f_, .ld, .src0q, ._, ._, ._ }, | ||
| 22300 | .{ ._, .f_p, .st, .dst0d, ._, ._, ._ }, | ||
| 22301 | } }, | ||
| 22302 | }, .{ | ||
| 22303 | .required_features = .{ .avx, null, null, null }, | ||
| 22304 | .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .qword } }, .any }, | ||
| 22305 | .dst_constraints = .{.{ .scalar_float = .{ .of = .qword, .is = .dword } }}, | ||
| 22306 | .patterns = &.{ | ||
| 22307 | .{ .src = .{ .mem, .none } }, | ||
| 22308 | .{ .src = .{ .to_sse, .none } }, | ||
| 22309 | }, | ||
| 22310 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, | ||
| 22311 | .each = .{ .once = &.{ | ||
| 22312 | .{ ._, .v_ps, .cvtpd2, .dst0x, .src0x, ._, ._ }, | ||
| 22313 | } }, | ||
| 22314 | }, .{ | ||
| 22315 | .required_features = .{ .sse2, null, null, null }, | ||
| 22316 | .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .qword } }, .any }, | ||
| 22317 | .dst_constraints = .{.{ .scalar_float = .{ .of = .qword, .is = .dword } }}, | ||
| 22318 | .patterns = &.{ | ||
| 22319 | .{ .src = .{ .mem, .none } }, | ||
| 22320 | .{ .src = .{ .to_sse, .none } }, | ||
| 22321 | }, | ||
| 22322 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, | ||
| 22323 | .each = .{ .once = &.{ | ||
| 22324 | .{ ._, ._ps, .cvtpd2, .dst0x, .src0x, ._, ._ }, | ||
| 22325 | } }, | ||
| 22326 | }, .{ | ||
| 22327 | .required_features = .{ .avx, null, null, null }, | ||
| 22328 | .src_constraints = .{ .{ .scalar_float = .{ .of = .yword, .is = .qword } }, .any }, | ||
| 22329 | .dst_constraints = .{.{ .scalar_float = .{ .of = .xword, .is = .dword } }}, | ||
| 22330 | .patterns = &.{ | ||
| 22331 | .{ .src = .{ .mem, .none } }, | ||
| 22332 | .{ .src = .{ .to_sse, .none } }, | ||
| 22333 | }, | ||
| 22334 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, | ||
| 22335 | .each = .{ .once = &.{ | ||
| 22336 | .{ ._, .v_ps, .cvtpd2, .dst0x, .src0y, ._, ._ }, | ||
| 22337 | } }, | ||
| 22338 | }, .{ | ||
| 22339 | .required_features = .{ .avx, null, null, null }, | ||
| 22340 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .yword, .is = .qword } }, .any }, | ||
| 22341 | .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }}, | ||
| 22342 | .patterns = &.{ | ||
| 22343 | .{ .src = .{ .to_mem, .none } }, | ||
| 22344 | }, | ||
| 22345 | .extra_temps = .{ | ||
| 22346 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 22347 | .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } }, | ||
| 22348 | .unused, | ||
| 22349 | .unused, | ||
| 22350 | .unused, | ||
| 22351 | .unused, | ||
| 22352 | .unused, | ||
| 22353 | .unused, | ||
| 22354 | .unused, | ||
| 22355 | }, | ||
| 22356 | .dst_temps = .{.mem}, | ||
| 22357 | .clobbers = .{ .eflags = true }, | ||
| 22358 | .each = .{ .once = &.{ | ||
| 22359 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_size), ._, ._ }, | ||
| 22360 | .{ .@"0:", .v_ps, .cvtpd2, .tmp1x, .memsia(.src0y, .@"2", .tmp0, .add_size), ._, ._ }, | ||
| 22361 | .{ ._, .v_ps, .mova, .memia(.dst0x, .tmp0, .add_size), .tmp1x, ._, ._ }, | ||
| 22362 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | ||
| 22363 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 22364 | } }, | ||
| 22365 | }, .{ | ||
| 22366 | .required_features = .{ .sse2, null, null, null }, | ||
| 22367 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .yword, .is = .qword } }, .any }, | ||
| 22368 | .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }}, | ||
| 22369 | .patterns = &.{ | ||
| 22370 | .{ .src = .{ .to_mem, .none } }, | ||
| 22371 | }, | ||
| 22372 | .extra_temps = .{ | ||
| 22373 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 22374 | .{ .type = .vector_2_f32, .kind = .{ .rc = .sse } }, | ||
| 22375 | .unused, | ||
| 22376 | .unused, | ||
| 22377 | .unused, | ||
| 22378 | .unused, | ||
| 22379 | .unused, | ||
| 22380 | .unused, | ||
| 22381 | .unused, | ||
| 22382 | }, | ||
| 22383 | .dst_temps = .{.mem}, | ||
| 22384 | .clobbers = .{ .eflags = true }, | ||
| 22385 | .each = .{ .once = &.{ | ||
| 22386 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_size), ._, ._ }, | ||
| 22387 | .{ .@"0:", ._ps, .cvtpd2, .tmp1x, .memsia(.src0x, .@"2", .tmp0, .add_size), ._, ._ }, | ||
| 22388 | .{ ._, ._ps, .movl, .memia(.dst0q, .tmp0, .add_size), .tmp1x, ._, ._ }, | ||
| 22389 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | ||
| 22390 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 22391 | } }, | ||
| 22392 | }, .{ | ||
| 22393 | .required_features = .{ .x87, null, null, null }, | ||
| 22394 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, | ||
| 22395 | .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }}, | ||
| 22396 | .patterns = &.{ | ||
| 22397 | .{ .src = .{ .to_mem, .none } }, | ||
| 22398 | }, | ||
| 22399 | .extra_temps = .{ | ||
| 22400 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 22401 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, | ||
| 22402 | .unused, | ||
| 22403 | .unused, | ||
| 22404 | .unused, | ||
| 22405 | .unused, | ||
| 22406 | .unused, | ||
| 22407 | .unused, | ||
| 22408 | .unused, | ||
| 22409 | }, | ||
| 22410 | .dst_temps = .{.mem}, | ||
| 22411 | .clobbers = .{ .eflags = true }, | ||
| 22412 | .each = .{ .once = &.{ | ||
| 22413 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | ||
| 22414 | .{ .@"0:", .f_, .ld, .memsia(.src0q, .@"2", .tmp0, .add_unaligned_size), ._, ._, ._ }, | ||
| 22415 | .{ ._, .f_p, .st, .memia(.dst0d, .tmp0, .add_unaligned_size), ._, ._, ._ }, | ||
| 22416 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | ||
| 22417 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 22418 | } }, | ||
| 22419 | }, .{ | ||
| 22420 | .required_features = .{ .avx, null, null, null }, | ||
| 22421 | .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, | ||
| 22422 | .dst_constraints = .{.{ .scalar_float = .{ .of = .word, .is = .word } }}, | ||
| 22423 | .patterns = &.{ | ||
| 22424 | .{ .src = .{ .to_mem, .none } }, | ||
| 22425 | }, | ||
| 22426 | .call_frame = .{ .size = 16, .alignment = .@"16" }, | ||
| 22427 | .extra_temps = .{ | ||
| 22428 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, | ||
| 22429 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__truncxfhf2" } } }, | ||
| 22430 | .unused, | ||
| 22431 | .unused, | ||
| 22432 | .unused, | ||
| 22433 | .unused, | ||
| 22434 | .unused, | ||
| 22435 | .unused, | ||
| 22436 | .unused, | ||
| 22437 | }, | ||
| 22438 | .dst_temps = .{.{ .reg = .xmm0 }}, | ||
| 22439 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | ||
| 22440 | .each = .{ .once = &.{ | ||
| 22441 | .{ ._, .v_dqa, .mov, .dst0x, .mem(.src0x), ._, ._ }, | ||
| 22442 | .{ ._, .v_dqa, .mov, .mem(.tmp0x), .dst0x, ._, ._ }, | ||
| 22443 | .{ ._, ._, .call, .tmp1d, ._, ._, ._ }, | ||
| 22444 | } }, | ||
| 22445 | }, .{ | ||
| 22446 | .required_features = .{ .sse2, null, null, null }, | ||
| 22447 | .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, | ||
| 22448 | .dst_constraints = .{.{ .scalar_float = .{ .of = .word, .is = .word } }}, | ||
| 22449 | .patterns = &.{ | ||
| 22450 | .{ .src = .{ .to_mem, .none } }, | ||
| 22451 | }, | ||
| 22452 | .call_frame = .{ .size = 16, .alignment = .@"16" }, | ||
| 22453 | .extra_temps = .{ | ||
| 22454 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, | ||
| 22455 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__truncxfhf2" } } }, | ||
| 22456 | .unused, | ||
| 22457 | .unused, | ||
| 22458 | .unused, | ||
| 22459 | .unused, | ||
| 22460 | .unused, | ||
| 22461 | .unused, | ||
| 22462 | .unused, | ||
| 22463 | }, | ||
| 22464 | .dst_temps = .{.{ .reg = .xmm0 }}, | ||
| 22465 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | ||
| 22466 | .each = .{ .once = &.{ | ||
| 22467 | .{ ._, ._dqa, .mov, .dst0x, .mem(.src0x), ._, ._ }, | ||
| 22468 | .{ ._, ._dqa, .mov, .mem(.tmp0x), .dst0x, ._, ._ }, | ||
| 22469 | .{ ._, ._, .call, .tmp1d, ._, ._, ._ }, | ||
| 22470 | } }, | ||
| 22471 | }, .{ | ||
| 22472 | .required_features = .{ .sse, null, null, null }, | ||
| 22473 | .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, | ||
| 22474 | .dst_constraints = .{.{ .scalar_float = .{ .of = .word, .is = .word } }}, | ||
| 22475 | .patterns = &.{ | ||
| 22476 | .{ .src = .{ .to_mem, .none } }, | ||
| 22477 | }, | ||
| 22478 | .call_frame = .{ .size = 16, .alignment = .@"16" }, | ||
| 22479 | .extra_temps = .{ | ||
| 22480 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, | ||
| 22481 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__truncxfhf2" } } }, | ||
| 22482 | .unused, | ||
| 22483 | .unused, | ||
| 22484 | .unused, | ||
| 22485 | .unused, | ||
| 22486 | .unused, | ||
| 22487 | .unused, | ||
| 22488 | .unused, | ||
| 22489 | }, | ||
| 22490 | .dst_temps = .{.{ .reg = .xmm0 }}, | ||
| 22491 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | ||
| 22492 | .each = .{ .once = &.{ | ||
| 22493 | .{ ._, ._ps, .mova, .dst0x, .mem(.src0x), ._, ._ }, | ||
| 22494 | .{ ._, ._ps, .mova, .mem(.tmp0x), .dst0x, ._, ._ }, | ||
| 22495 | .{ ._, ._, .call, .tmp1d, ._, ._, ._ }, | ||
| 22496 | } }, | ||
| 22497 | }, .{ | ||
| 22498 | .required_features = .{ .avx, null, null, null }, | ||
| 22499 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, | ||
| 22500 | .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .word, .is = .word } }}, | ||
| 22501 | .patterns = &.{ | ||
| 22502 | .{ .src = .{ .to_mem, .none } }, | ||
| 22503 | }, | ||
| 22504 | .call_frame = .{ .size = 16, .alignment = .@"16" }, | ||
| 22505 | .extra_temps = .{ | ||
| 22506 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 22507 | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, | ||
| 22508 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, | ||
| 22509 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__truncxfhf2" } } }, | ||
| 22510 | .unused, | ||
| 22511 | .unused, | ||
| 22512 | .unused, | ||
| 22513 | .unused, | ||
| 22514 | .unused, | ||
| 22515 | }, | ||
| 22516 | .dst_temps = .{.mem}, | ||
| 22517 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | ||
| 22518 | .each = .{ .once = &.{ | ||
| 22519 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | ||
| 22520 | .{ .@"0:", .v_dqa, .mov, .tmp1x, .memsia(.src0x, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, | ||
| 22521 | .{ ._, .v_dqa, .mov, .mem(.tmp2x), .tmp1x, ._, ._ }, | ||
| 22522 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, | ||
| 22523 | .{ ._, .vp_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1x, .ui(0), ._ }, | ||
| 22524 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | ||
| 22525 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 22526 | } }, | ||
| 22527 | }, .{ | ||
| 22528 | .required_features = .{ .sse4_1, null, null, null }, | ||
| 22529 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, | ||
| 22530 | .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .word, .is = .word } }}, | ||
| 22531 | .patterns = &.{ | ||
| 22532 | .{ .src = .{ .to_mem, .none } }, | ||
| 22533 | }, | ||
| 22534 | .call_frame = .{ .size = 16, .alignment = .@"16" }, | ||
| 22535 | .extra_temps = .{ | ||
| 22536 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 22537 | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, | ||
| 22538 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, | ||
| 22539 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__truncxfhf2" } } }, | ||
| 22540 | .unused, | ||
| 22541 | .unused, | ||
| 22542 | .unused, | ||
| 22543 | .unused, | ||
| 22544 | .unused, | ||
| 22545 | }, | ||
| 22546 | .dst_temps = .{.mem}, | ||
| 22547 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | ||
| 22548 | .each = .{ .once = &.{ | ||
| 22549 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | ||
| 22550 | .{ .@"0:", ._dqa, .mov, .tmp1x, .memsia(.src0x, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, | ||
| 22551 | .{ ._, ._dqa, .mov, .mem(.tmp2x), .tmp1x, ._, ._ }, | ||
| 22552 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, | ||
| 22553 | .{ ._, .p_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1x, .ui(0), ._ }, | ||
| 22554 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | ||
| 22555 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 22556 | } }, | ||
| 22557 | }, .{ | ||
| 22558 | .required_features = .{ .sse2, null, null, null }, | ||
| 22559 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, | ||
| 22560 | .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .word, .is = .word } }}, | ||
| 22561 | .patterns = &.{ | ||
| 22562 | .{ .src = .{ .to_mem, .none } }, | ||
| 22563 | }, | ||
| 22564 | .call_frame = .{ .size = 16, .alignment = .@"16" }, | ||
| 22565 | .extra_temps = .{ | ||
| 22566 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 22567 | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, | ||
| 22568 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, | ||
| 22569 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__truncxfhf2" } } }, | ||
| 22570 | .{ .type = .f16, .kind = .{ .reg = .ax } }, | ||
| 22571 | .unused, | ||
| 22572 | .unused, | ||
| 22573 | .unused, | ||
| 22574 | .unused, | ||
| 22575 | }, | ||
| 22576 | .dst_temps = .{.mem}, | ||
| 22577 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | ||
| 22578 | .each = .{ .once = &.{ | ||
| 22579 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | ||
| 22580 | .{ .@"0:", ._dqa, .mov, .tmp1x, .memsia(.src0x, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, | ||
| 22581 | .{ ._, ._dqa, .mov, .mem(.tmp2x), .tmp1x, ._, ._ }, | ||
| 22582 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, | ||
| 22583 | .{ ._, .p_w, .extr, .tmp4d, .tmp1x, .ui(0), ._ }, | ||
| 22584 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp4w, ._, ._ }, | ||
| 22585 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | ||
| 22586 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 22587 | } }, | ||
| 22588 | }, .{ | ||
| 22589 | .required_features = .{ .sse, null, null, null }, | ||
| 22590 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, | ||
| 22591 | .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .word, .is = .word } }}, | ||
| 22592 | .patterns = &.{ | ||
| 22593 | .{ .src = .{ .to_mem, .none } }, | ||
| 22594 | }, | ||
| 22595 | .call_frame = .{ .size = 16, .alignment = .@"16" }, | ||
| 22596 | .extra_temps = .{ | ||
| 22597 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 22598 | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, | ||
| 22599 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, | ||
| 22600 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__truncxfhf2" } } }, | ||
| 22601 | .{ .type = .f16, .kind = .{ .reg = .ax } }, | ||
| 22602 | .unused, | ||
| 22603 | .unused, | ||
| 22604 | .unused, | ||
| 22605 | .unused, | ||
| 22606 | }, | ||
| 22607 | .dst_temps = .{.mem}, | ||
| 22608 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | ||
| 22609 | .each = .{ .once = &.{ | ||
| 22610 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | ||
| 22611 | .{ .@"0:", ._ps, .mova, .tmp1x, .memsia(.src0x, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, | ||
| 22612 | .{ ._, ._ps, .mova, .mem(.tmp2x), .tmp1x, ._, ._ }, | ||
| 22613 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, | ||
| 22614 | .{ ._, ._ss, .mov, .mem(.tmp2d), .tmp1x, ._, ._ }, | ||
| 22615 | .{ ._, ._, .mov, .tmp4d, .mem(.tmp2d), ._, ._ }, | ||
| 22616 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp4w, ._, ._ }, | ||
| 22617 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | ||
| 22618 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 22619 | } }, | ||
| 22620 | }, .{ | ||
| 22621 | .required_features = .{ .x87, null, null, null }, | ||
| 22622 | .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, | ||
| 22623 | .dst_constraints = .{.{ .scalar_float = .{ .of = .dword, .is = .dword } }}, | ||
| 22624 | .patterns = &.{ | ||
| 22625 | .{ .src = .{ .mem, .none } }, | ||
| 22626 | .{ .src = .{ .to_x87, .none } }, | ||
| 22627 | }, | ||
| 22628 | .extra_temps = .{ | ||
| 22629 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, | ||
| 22630 | .unused, | ||
| 22631 | .unused, | ||
| 22632 | .unused, | ||
| 22633 | .unused, | ||
| 22634 | .unused, | ||
| 22635 | .unused, | ||
| 22636 | .unused, | ||
| 22637 | .unused, | ||
| 22638 | }, | ||
| 22639 | .dst_temps = .{.mem}, | ||
| 22640 | .each = .{ .once = &.{ | ||
| 22641 | .{ ._, .f_, .ld, .src0t, ._, ._, ._ }, | ||
| 22642 | .{ ._, .f_p, .st, .dst0d, ._, ._, ._ }, | ||
| 22643 | } }, | ||
| 22644 | }, .{ | ||
| 22645 | .required_features = .{ .x87, null, null, null }, | ||
| 22646 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, | ||
| 22647 | .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }}, | ||
| 22648 | .patterns = &.{ | ||
| 22649 | .{ .src = .{ .to_mem, .none } }, | ||
| 22650 | }, | ||
| 22651 | .extra_temps = .{ | ||
| 22652 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 22653 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, | ||
| 22654 | .unused, | ||
| 22655 | .unused, | ||
| 22656 | .unused, | ||
| 22657 | .unused, | ||
| 22658 | .unused, | ||
| 22659 | .unused, | ||
| 22660 | .unused, | ||
| 22661 | }, | ||
| 22662 | .dst_temps = .{.mem}, | ||
| 22663 | .clobbers = .{ .eflags = true }, | ||
| 22664 | .each = .{ .once = &.{ | ||
| 22665 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | ||
| 22666 | .{ .@"0:", .f_, .ld, .memsia(.src0t, .@"4", .tmp0, .add_unaligned_size), ._, ._, ._ }, | ||
| 22667 | .{ ._, .f_p, .st, .memia(.dst0d, .tmp0, .add_unaligned_size), ._, ._, ._ }, | ||
| 22668 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | ||
| 22669 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 22670 | } }, | ||
| 22671 | }, .{ | ||
| 22672 | .required_features = .{ .x87, null, null, null }, | ||
| 22673 | .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, | ||
| 22674 | .dst_constraints = .{.{ .scalar_float = .{ .of = .qword, .is = .qword } }}, | ||
| 22675 | .patterns = &.{ | ||
| 22676 | .{ .src = .{ .mem, .none } }, | ||
| 22677 | .{ .src = .{ .to_x87, .none } }, | ||
| 22678 | }, | ||
| 22679 | .extra_temps = .{ | ||
| 22680 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, | ||
| 22681 | .unused, | ||
| 22682 | .unused, | ||
| 22683 | .unused, | ||
| 22684 | .unused, | ||
| 22685 | .unused, | ||
| 22686 | .unused, | ||
| 22687 | .unused, | ||
| 22688 | .unused, | ||
| 22689 | }, | ||
| 22690 | .dst_temps = .{.mem}, | ||
| 22691 | .each = .{ .once = &.{ | ||
| 22692 | .{ ._, .f_, .ld, .src0t, ._, ._, ._ }, | ||
| 22693 | .{ ._, .f_p, .st, .dst0q, ._, ._, ._ }, | ||
| 22694 | } }, | ||
| 22695 | }, .{ | ||
| 22696 | .required_features = .{ .x87, null, null, null }, | ||
| 22697 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, | ||
| 22698 | .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }}, | ||
| 22699 | .patterns = &.{ | ||
| 22700 | .{ .src = .{ .to_mem, .none } }, | ||
| 22701 | }, | ||
| 22702 | .extra_temps = .{ | ||
| 22703 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 22704 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, | ||
| 22705 | .unused, | ||
| 22706 | .unused, | ||
| 22707 | .unused, | ||
| 22708 | .unused, | ||
| 22709 | .unused, | ||
| 22710 | .unused, | ||
| 22711 | .unused, | ||
| 22712 | }, | ||
| 22713 | .dst_temps = .{.mem}, | ||
| 22714 | .clobbers = .{ .eflags = true }, | ||
| 22715 | .each = .{ .once = &.{ | ||
| 22716 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | ||
| 22717 | .{ .@"0:", .f_, .ld, .memsia(.src0t, .@"2", .tmp0, .add_unaligned_size), ._, ._, ._ }, | ||
| 22718 | .{ ._, .f_p, .st, .memia(.dst0q, .tmp0, .add_unaligned_size), ._, ._, ._ }, | ||
| 22719 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | ||
| 22720 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 22721 | } }, | ||
| 22722 | }, .{ | ||
| 22723 | .required_features = .{ .sse, null, null, null }, | ||
| 22724 | .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .xword } }, .any }, | ||
| 22725 | .dst_constraints = .{.{ .scalar_float = .{ .of = .word, .is = .word } }}, | ||
| 22726 | .patterns = &.{ | ||
| 22727 | .{ .src = .{ .{ .to_reg = .xmm0 }, .none } }, | ||
| 22728 | }, | ||
| 22729 | .call_frame = .{ .alignment = .@"16" }, | ||
| 22730 | .extra_temps = .{ | ||
| 22731 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__trunctfhf2" } } }, | ||
| 22732 | .unused, | ||
| 22733 | .unused, | ||
| 22734 | .unused, | ||
| 22735 | .unused, | ||
| 22736 | .unused, | ||
| 22737 | .unused, | ||
| 22738 | .unused, | ||
| 22739 | .unused, | ||
| 22740 | }, | ||
| 22741 | .dst_temps = .{.{ .ref = .src0 }}, | ||
| 22742 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | ||
| 22743 | .each = .{ .once = &.{ | ||
| 22744 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, | ||
| 22745 | } }, | ||
| 22746 | }, .{ | ||
| 22747 | .required_features = .{ .avx, null, null, null }, | ||
| 22748 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, | ||
| 22749 | .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .word, .is = .word } }}, | ||
| 22750 | .patterns = &.{ | ||
| 22751 | .{ .src = .{ .to_mem, .none } }, | ||
| 22752 | }, | ||
| 22753 | .call_frame = .{ .alignment = .@"16" }, | ||
| 22754 | .extra_temps = .{ | ||
| 22755 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 22756 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, | ||
| 22757 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__trunctfhf2" } } }, | ||
| 22758 | .unused, | ||
| 22759 | .unused, | ||
| 22760 | .unused, | ||
| 22761 | .unused, | ||
| 22762 | .unused, | ||
| 22763 | .unused, | ||
| 22764 | }, | ||
| 22765 | .dst_temps = .{.mem}, | ||
| 22766 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | ||
| 22767 | .each = .{ .once = &.{ | ||
| 22768 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | ||
| 22769 | .{ .@"0:", .v_dqa, .mov, .tmp1x, .memsia(.src0x, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, | ||
| 22770 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | ||
| 22771 | .{ ._, .vp_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1x, .ui(0), ._ }, | ||
| 22772 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | ||
| 22773 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 22774 | } }, | ||
| 22775 | }, .{ | ||
| 22776 | .required_features = .{ .sse4_1, null, null, null }, | ||
| 22777 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, | ||
| 22778 | .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .word, .is = .word } }}, | ||
| 22779 | .patterns = &.{ | ||
| 22780 | .{ .src = .{ .to_mem, .none } }, | ||
| 22781 | }, | ||
| 22782 | .call_frame = .{ .alignment = .@"16" }, | ||
| 22783 | .extra_temps = .{ | ||
| 22784 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 22785 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, | ||
| 22786 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__trunctfhf2" } } }, | ||
| 22787 | .unused, | ||
| 22788 | .unused, | ||
| 22789 | .unused, | ||
| 22790 | .unused, | ||
| 22791 | .unused, | ||
| 22792 | .unused, | ||
| 22793 | }, | ||
| 22794 | .dst_temps = .{.mem}, | ||
| 22795 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | ||
| 22796 | .each = .{ .once = &.{ | ||
| 22797 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | ||
| 22798 | .{ .@"0:", ._dqa, .mov, .tmp1x, .memsia(.src0x, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, | ||
| 22799 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | ||
| 22800 | .{ ._, .p_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1x, .ui(0), ._ }, | ||
| 22801 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | ||
| 22802 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 22803 | } }, | ||
| 22804 | }, .{ | ||
| 22805 | .required_features = .{ .sse2, null, null, null }, | ||
| 22806 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, | ||
| 22807 | .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .word, .is = .word } }}, | ||
| 22808 | .patterns = &.{ | ||
| 22809 | .{ .src = .{ .to_mem, .none } }, | ||
| 22810 | }, | ||
| 22811 | .call_frame = .{ .alignment = .@"16" }, | ||
| 22812 | .extra_temps = .{ | ||
| 22813 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 22814 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, | ||
| 22815 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__trunctfhf2" } } }, | ||
| 22816 | .{ .type = .f16, .kind = .{ .reg = .ax } }, | ||
| 22817 | .unused, | ||
| 22818 | .unused, | ||
| 22819 | .unused, | ||
| 22820 | .unused, | ||
| 22821 | .unused, | ||
| 22822 | }, | ||
| 22823 | .dst_temps = .{.mem}, | ||
| 22824 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | ||
| 22825 | .each = .{ .once = &.{ | ||
| 22826 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | ||
| 22827 | .{ .@"0:", ._dqa, .mov, .tmp1x, .memsia(.src0x, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, | ||
| 22828 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | ||
| 22829 | .{ ._, .p_w, .extr, .tmp3d, .tmp1x, .ui(0), ._ }, | ||
| 22830 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp3w, ._, ._ }, | ||
| 22831 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | ||
| 22832 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 22833 | } }, | ||
| 22834 | }, .{ | ||
| 22835 | .required_features = .{ .sse, null, null, null }, | ||
| 22836 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, | ||
| 22837 | .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .word, .is = .word } }}, | ||
| 22838 | .patterns = &.{ | ||
| 22839 | .{ .src = .{ .to_mem, .none } }, | ||
| 22840 | }, | ||
| 22841 | .call_frame = .{ .alignment = .@"16" }, | ||
| 22842 | .extra_temps = .{ | ||
| 22843 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 22844 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, | ||
| 22845 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__trunctfhf2" } } }, | ||
| 22846 | .{ .type = .f32, .kind = .mem }, | ||
| 22847 | .{ .type = .f16, .kind = .{ .reg = .ax } }, | ||
| 22848 | .unused, | ||
| 22849 | .unused, | ||
| 22850 | .unused, | ||
| 22851 | .unused, | ||
| 22852 | }, | ||
| 22853 | .dst_temps = .{.mem}, | ||
| 22854 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | ||
| 22855 | .each = .{ .once = &.{ | ||
| 22856 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | ||
| 22857 | .{ .@"0:", ._ps, .mova, .tmp1x, .memsia(.src0x, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, | ||
| 22858 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | ||
| 22859 | .{ ._, ._ss, .mov, .mem(.tmp3d), .tmp1x, ._, ._ }, | ||
| 22860 | .{ ._, ._, .mov, .tmp4d, .mem(.tmp3d), ._, ._ }, | ||
| 22861 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp4w, ._, ._ }, | ||
| 22862 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | ||
| 22863 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 22864 | } }, | ||
| 22865 | }, .{ | ||
| 22866 | .required_features = .{ .sse, null, null, null }, | ||
| 22867 | .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .xword } }, .any }, | ||
| 22868 | .dst_constraints = .{.{ .scalar_float = .{ .of = .dword, .is = .dword } }}, | ||
| 22869 | .patterns = &.{ | ||
| 22870 | .{ .src = .{ .{ .to_reg = .xmm0 }, .none } }, | ||
| 22871 | }, | ||
| 22872 | .call_frame = .{ .alignment = .@"16" }, | ||
| 22873 | .extra_temps = .{ | ||
| 22874 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__trunctfsf2" } } }, | ||
| 22875 | .unused, | ||
| 22876 | .unused, | ||
| 22877 | .unused, | ||
| 22878 | .unused, | ||
| 22879 | .unused, | ||
| 22880 | .unused, | ||
| 22881 | .unused, | ||
| 22882 | .unused, | ||
| 22883 | }, | ||
| 22884 | .dst_temps = .{.{ .ref = .src0 }}, | ||
| 22885 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | ||
| 22886 | .each = .{ .once = &.{ | ||
| 22887 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, | ||
| 22888 | } }, | ||
| 22889 | }, .{ | ||
| 22890 | .required_features = .{ .avx, null, null, null }, | ||
| 22891 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, | ||
| 22892 | .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }}, | ||
| 22893 | .patterns = &.{ | ||
| 22894 | .{ .src = .{ .to_mem, .none } }, | ||
| 22895 | }, | ||
| 22896 | .call_frame = .{ .alignment = .@"16" }, | ||
| 22897 | .extra_temps = .{ | ||
| 22898 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 22899 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, | ||
| 22900 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__trunctfsf2" } } }, | ||
| 22901 | .unused, | ||
| 22902 | .unused, | ||
| 22903 | .unused, | ||
| 22904 | .unused, | ||
| 22905 | .unused, | ||
| 22906 | .unused, | ||
| 22907 | }, | ||
| 22908 | .dst_temps = .{.mem}, | ||
| 22909 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | ||
| 22910 | .each = .{ .once = &.{ | ||
| 22911 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | ||
| 22912 | .{ .@"0:", .v_dqa, .mov, .tmp1x, .memsia(.src0x, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, | ||
| 22913 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | ||
| 22914 | .{ ._, .v_ss, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, | ||
| 22915 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | ||
| 22916 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 22917 | } }, | ||
| 22918 | }, .{ | ||
| 22919 | .required_features = .{ .sse2, null, null, null }, | ||
| 22920 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, | ||
| 22921 | .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }}, | ||
| 22922 | .patterns = &.{ | ||
| 22923 | .{ .src = .{ .to_mem, .none } }, | ||
| 22924 | }, | ||
| 22925 | .call_frame = .{ .alignment = .@"16" }, | ||
| 22926 | .extra_temps = .{ | ||
| 22927 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 22928 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, | ||
| 22929 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__trunctfsf2" } } }, | ||
| 22930 | .unused, | ||
| 22931 | .unused, | ||
| 22932 | .unused, | ||
| 22933 | .unused, | ||
| 22934 | .unused, | ||
| 22935 | .unused, | ||
| 22936 | }, | ||
| 22937 | .dst_temps = .{.mem}, | ||
| 22938 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | ||
| 22939 | .each = .{ .once = &.{ | ||
| 22940 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | ||
| 22941 | .{ .@"0:", ._dqa, .mov, .tmp1x, .memsia(.src0x, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, | ||
| 22942 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | ||
| 22943 | .{ ._, ._ss, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, | ||
| 22944 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | ||
| 22945 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 22946 | } }, | ||
| 22947 | }, .{ | ||
| 22948 | .required_features = .{ .sse, null, null, null }, | ||
| 22949 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, | ||
| 22950 | .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }}, | ||
| 22951 | .patterns = &.{ | ||
| 22952 | .{ .src = .{ .to_mem, .none } }, | ||
| 22953 | }, | ||
| 22954 | .call_frame = .{ .alignment = .@"16" }, | ||
| 22955 | .extra_temps = .{ | ||
| 22956 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 22957 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, | ||
| 22958 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__trunctfsf2" } } }, | ||
| 22959 | .unused, | ||
| 22960 | .unused, | ||
| 22961 | .unused, | ||
| 22962 | .unused, | ||
| 22963 | .unused, | ||
| 22964 | .unused, | ||
| 22965 | }, | ||
| 22966 | .dst_temps = .{.mem}, | ||
| 22967 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | ||
| 22968 | .each = .{ .once = &.{ | ||
| 22969 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | ||
| 22970 | .{ .@"0:", ._ps, .mova, .tmp1x, .memsia(.src0x, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, | ||
| 22971 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | ||
| 22972 | .{ ._, ._ss, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, | ||
| 22973 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | ||
| 22974 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 22975 | } }, | ||
| 22976 | }, .{ | ||
| 22977 | .required_features = .{ .sse, null, null, null }, | ||
| 22978 | .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .xword } }, .any }, | ||
| 22979 | .dst_constraints = .{.{ .scalar_float = .{ .of = .qword, .is = .qword } }}, | ||
| 22980 | .patterns = &.{ | ||
| 22981 | .{ .src = .{ .{ .to_reg = .xmm0 }, .none } }, | ||
| 22982 | }, | ||
| 22983 | .call_frame = .{ .alignment = .@"16" }, | ||
| 22984 | .extra_temps = .{ | ||
| 22985 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__trunctfdf2" } } }, | ||
| 22986 | .unused, | ||
| 22987 | .unused, | ||
| 22988 | .unused, | ||
| 22989 | .unused, | ||
| 22990 | .unused, | ||
| 22991 | .unused, | ||
| 22992 | .unused, | ||
| 22993 | .unused, | ||
| 22994 | }, | ||
| 22995 | .dst_temps = .{.{ .ref = .src0 }}, | ||
| 22996 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | ||
| 22997 | .each = .{ .once = &.{ | ||
| 22998 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, | ||
| 22999 | } }, | ||
| 23000 | }, .{ | ||
| 23001 | .required_features = .{ .avx, null, null, null }, | ||
| 23002 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, | ||
| 23003 | .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }}, | ||
| 23004 | .patterns = &.{ | ||
| 23005 | .{ .src = .{ .to_mem, .none } }, | ||
| 23006 | }, | ||
| 23007 | .call_frame = .{ .alignment = .@"16" }, | ||
| 23008 | .extra_temps = .{ | ||
| 23009 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 23010 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, | ||
| 23011 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__trunctfdf2" } } }, | ||
| 23012 | .unused, | ||
| 23013 | .unused, | ||
| 23014 | .unused, | ||
| 23015 | .unused, | ||
| 23016 | .unused, | ||
| 23017 | .unused, | ||
| 23018 | }, | ||
| 23019 | .dst_temps = .{.mem}, | ||
| 23020 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | ||
| 23021 | .each = .{ .once = &.{ | ||
| 23022 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | ||
| 23023 | .{ .@"0:", .v_dqa, .mov, .tmp1x, .memsia(.src0x, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, | ||
| 23024 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | ||
| 23025 | .{ ._, .v_sd, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, | ||
| 23026 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | ||
| 23027 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 23028 | } }, | ||
| 23029 | }, .{ | ||
| 23030 | .required_features = .{ .sse2, null, null, null }, | ||
| 23031 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, | ||
| 23032 | .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }}, | ||
| 23033 | .patterns = &.{ | ||
| 23034 | .{ .src = .{ .to_mem, .none } }, | ||
| 23035 | }, | ||
| 23036 | .call_frame = .{ .alignment = .@"16" }, | ||
| 23037 | .extra_temps = .{ | ||
| 23038 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 23039 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, | ||
| 23040 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__trunctfdf2" } } }, | ||
| 23041 | .unused, | ||
| 23042 | .unused, | ||
| 23043 | .unused, | ||
| 23044 | .unused, | ||
| 23045 | .unused, | ||
| 23046 | .unused, | ||
| 23047 | }, | ||
| 23048 | .dst_temps = .{.mem}, | ||
| 23049 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | ||
| 23050 | .each = .{ .once = &.{ | ||
| 23051 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | ||
| 23052 | .{ .@"0:", ._dqa, .mov, .tmp1x, .memsia(.src0x, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, | ||
| 23053 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | ||
| 23054 | .{ ._, ._sd, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, | ||
| 23055 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | ||
| 23056 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 23057 | } }, | ||
| 23058 | }, .{ | ||
| 23059 | .required_features = .{ .sse, null, null, null }, | ||
| 23060 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, | ||
| 23061 | .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }}, | ||
| 23062 | .patterns = &.{ | ||
| 23063 | .{ .src = .{ .to_mem, .none } }, | ||
| 23064 | }, | ||
| 23065 | .call_frame = .{ .alignment = .@"16" }, | ||
| 23066 | .extra_temps = .{ | ||
| 23067 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 23068 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, | ||
| 23069 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__trunctfdf2" } } }, | ||
| 23070 | .unused, | ||
| 23071 | .unused, | ||
| 23072 | .unused, | ||
| 23073 | .unused, | ||
| 23074 | .unused, | ||
| 23075 | .unused, | ||
| 23076 | }, | ||
| 23077 | .dst_temps = .{.mem}, | ||
| 23078 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | ||
| 23079 | .each = .{ .once = &.{ | ||
| 23080 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | ||
| 23081 | .{ .@"0:", ._ps, .mova, .tmp1x, .memsia(.src0x, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, | ||
| 23082 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | ||
| 23083 | .{ ._, ._ps, .movl, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, | ||
| 23084 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | ||
| 23085 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 23086 | } }, | ||
| 23087 | }, .{ | ||
| 23088 | .required_features = .{ .sse, null, null, null }, | ||
| 23089 | .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .xword } }, .any }, | ||
| 23090 | .dst_constraints = .{.{ .scalar_float = .{ .of = .xword, .is = .tbyte } }}, | ||
| 23091 | .patterns = &.{ | ||
| 23092 | .{ .src = .{ .{ .to_reg = .xmm0 }, .none } }, | ||
| 23093 | }, | ||
| 23094 | .call_frame = .{ .alignment = .@"16" }, | ||
| 23095 | .extra_temps = .{ | ||
| 23096 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__trunctfxf2" } } }, | ||
| 23097 | .unused, | ||
| 23098 | .unused, | ||
| 23099 | .unused, | ||
| 23100 | .unused, | ||
| 23101 | .unused, | ||
| 23102 | .unused, | ||
| 23103 | .unused, | ||
| 23104 | .unused, | ||
| 23105 | }, | ||
| 23106 | .dst_temps = .{.{ .reg = .st0 }}, | ||
| 23107 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | ||
| 23108 | .each = .{ .once = &.{ | ||
| 23109 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, | ||
| 23110 | } }, | ||
| 23111 | }, .{ | ||
| 23112 | .required_features = .{ .avx, null, null, null }, | ||
| 23113 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, | ||
| 23114 | .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }}, | ||
| 23115 | .patterns = &.{ | ||
| 23116 | .{ .src = .{ .to_mem, .none } }, | ||
| 23117 | }, | ||
| 23118 | .call_frame = .{ .alignment = .@"16" }, | ||
| 23119 | .extra_temps = .{ | ||
| 23120 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 23121 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, | ||
| 23122 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__trunctfxf2" } } }, | ||
| 23123 | .unused, | ||
| 23124 | .unused, | ||
| 23125 | .unused, | ||
| 23126 | .unused, | ||
| 23127 | .unused, | ||
| 23128 | .unused, | ||
| 23129 | }, | ||
| 23130 | .dst_temps = .{.mem}, | ||
| 23131 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | ||
| 23132 | .each = .{ .once = &.{ | ||
| 23133 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | ||
| 23134 | .{ .@"0:", .v_dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, | ||
| 23135 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | ||
| 23136 | .{ .pseudo, .f_cstp, .de, ._, ._, ._, ._ }, | ||
| 23137 | .{ ._, .f_p, .st, .memia(.dst0t, .tmp0, .add_unaligned_size), ._, ._, ._ }, | ||
| 23138 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | ||
| 23139 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 23140 | } }, | ||
| 23141 | }, .{ | ||
| 23142 | .required_features = .{ .sse2, null, null, null }, | ||
| 23143 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, | ||
| 23144 | .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }}, | ||
| 23145 | .patterns = &.{ | ||
| 23146 | .{ .src = .{ .to_mem, .none } }, | ||
| 23147 | }, | ||
| 23148 | .call_frame = .{ .alignment = .@"16" }, | ||
| 23149 | .extra_temps = .{ | ||
| 23150 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 23151 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, | ||
| 23152 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__trunctfxf2" } } }, | ||
| 23153 | .unused, | ||
| 23154 | .unused, | ||
| 23155 | .unused, | ||
| 23156 | .unused, | ||
| 23157 | .unused, | ||
| 23158 | .unused, | ||
| 23159 | }, | ||
| 23160 | .dst_temps = .{.mem}, | ||
| 23161 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | ||
| 23162 | .each = .{ .once = &.{ | ||
| 23163 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | ||
| 23164 | .{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, | ||
| 23165 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | ||
| 23166 | .{ .pseudo, .f_cstp, .de, ._, ._, ._, ._ }, | ||
| 23167 | .{ ._, .f_p, .st, .memia(.dst0t, .tmp0, .add_unaligned_size), ._, ._, ._ }, | ||
| 23168 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | ||
| 23169 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 23170 | } }, | ||
| 23171 | }, .{ | ||
| 23172 | .required_features = .{ .sse, null, null, null }, | ||
| 23173 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, | ||
| 23174 | .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }}, | ||
| 23175 | .patterns = &.{ | ||
| 23176 | .{ .src = .{ .to_mem, .none } }, | ||
| 23177 | }, | ||
| 23178 | .call_frame = .{ .alignment = .@"16" }, | ||
| 23179 | .extra_temps = .{ | ||
| 23180 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 23181 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, | ||
| 23182 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__trunctfxf2" } } }, | ||
| 23183 | .unused, | ||
| 23184 | .unused, | ||
| 23185 | .unused, | ||
| 23186 | .unused, | ||
| 23187 | .unused, | ||
| 23188 | .unused, | ||
| 23189 | }, | ||
| 23190 | .dst_temps = .{.mem}, | ||
| 23191 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | ||
| 23192 | .each = .{ .once = &.{ | ||
| 23193 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | ||
| 23194 | .{ .@"0:", ._ps, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, | ||
| 23195 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | ||
| 23196 | .{ .pseudo, .f_cstp, .de, ._, ._, ._, ._ }, | ||
| 23197 | .{ ._, .f_p, .st, .memia(.dst0t, .tmp0, .add_unaligned_size), ._, ._, ._ }, | ||
| 23198 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | ||
| 23199 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 23200 | } }, | ||
| 23201 | } }) catch |err| switch (err) { | ||
| 23202 | error.SelectFailed => return cg.fail("failed to select {s} {} {} {}", .{ | ||
| 23203 | @tagName(air_tag), | ||
| 23204 | ty_op.ty.toType().fmt(pt), | ||
| 23205 | cg.typeOf(ty_op.operand).fmt(pt), | ||
| 23206 | ops[0].tracking(cg), | ||
| 23207 | }), | ||
| 23208 | else => |e| return e, | ||
| 23209 | }; | ||
| 23210 | try res[0].finish(inst, &.{ty_op.operand}, &ops, cg); | ||
| 23211 | }, | ||
| 23212 | .fpext => |air_tag| if (use_old) try cg.airFpext(inst) else { | ||
| 23213 | const ty_op = air_datas[@intFromEnum(inst)].ty_op; | ||
| 23214 | var ops = try cg.tempsFromOperands(inst, .{ty_op.operand}); | ||
| 23215 | var res: [1]Temp = undefined; | ||
| 23216 | cg.select(&res, &.{ty_op.ty.toType()}, &ops, comptime &.{ .{ | ||
| 23217 | .required_features = .{ .f16c, null, null, null }, | ||
| 23218 | .src_constraints = .{ .{ .scalar_float = .{ .of = .word, .is = .word } }, .any }, | ||
| 23219 | .dst_constraints = .{.{ .scalar_float = .{ .of = .dword, .is = .dword } }}, | ||
| 23220 | .patterns = &.{ | ||
| 23221 | .{ .src = .{ .to_sse, .none } }, | ||
| 23222 | }, | ||
| 23223 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, | ||
| 23224 | .each = .{ .once = &.{ | ||
| 23225 | .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ }, | ||
| 23226 | } }, | ||
| 23227 | }, .{ | ||
| 23228 | .required_features = .{ .f16c, null, null, null }, | ||
| 23229 | .src_constraints = .{ .{ .scalar_float = .{ .of = .qword, .is = .word } }, .any }, | ||
| 23230 | .dst_constraints = .{.{ .scalar_float = .{ .of = .xword, .is = .dword } }}, | ||
| 23231 | .patterns = &.{ | ||
| 23232 | .{ .src = .{ .mem, .none } }, | ||
| 23233 | .{ .src = .{ .to_sse, .none } }, | ||
| 23234 | }, | ||
| 23235 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, | ||
| 23236 | .each = .{ .once = &.{ | ||
| 23237 | .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ }, | ||
| 23238 | } }, | ||
| 23239 | }, .{ | ||
| 23240 | .required_features = .{ .f16c, null, null, null }, | ||
| 23241 | .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .word } }, .any }, | ||
| 23242 | .dst_constraints = .{.{ .scalar_float = .{ .of = .yword, .is = .dword } }}, | ||
| 23243 | .patterns = &.{ | ||
| 23244 | .{ .src = .{ .mem, .none } }, | ||
| 23245 | .{ .src = .{ .to_sse, .none } }, | ||
| 23246 | }, | ||
| 23247 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, | ||
| 23248 | .each = .{ .once = &.{ | ||
| 23249 | .{ ._, .v_ps, .cvtph2, .dst0y, .src0x, ._, ._ }, | ||
| 23250 | } }, | ||
| 23251 | }, .{ | ||
| 23252 | .required_features = .{ .sse, null, null, null }, | ||
| 23253 | .src_constraints = .{ .{ .scalar_float = .{ .of = .word, .is = .word } }, .any }, | ||
| 23254 | .dst_constraints = .{.{ .scalar_float = .{ .of = .dword, .is = .dword } }}, | ||
| 23255 | .patterns = &.{ | ||
| 23256 | .{ .src = .{ .{ .to_reg = .xmm0 }, .none } }, | ||
| 23257 | }, | ||
| 23258 | .call_frame = .{ .alignment = .@"16" }, | ||
| 23259 | .extra_temps = .{ | ||
| 23260 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__extendhfsf2" } } }, | ||
| 23261 | .unused, | ||
| 23262 | .unused, | ||
| 23263 | .unused, | ||
| 23264 | .unused, | ||
| 23265 | .unused, | ||
| 23266 | .unused, | ||
| 23267 | .unused, | ||
| 23268 | .unused, | ||
| 23269 | }, | ||
| 23270 | .dst_temps = .{.{ .ref = .src0 }}, | ||
| 23271 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | ||
| 23272 | .each = .{ .once = &.{ | ||
| 23273 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, | ||
| 23274 | } }, | ||
| 23275 | }, .{ | ||
| 23276 | .required_features = .{ .f16c, null, null, null }, | ||
| 23277 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .word } }, .any }, | ||
| 23278 | .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } }}, | ||
| 23279 | .patterns = &.{ | ||
| 23280 | .{ .src = .{ .to_mem, .none } }, | ||
| 23281 | }, | ||
| 23282 | .extra_temps = .{ | ||
| 23283 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 23284 | .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } }, | ||
| 23285 | .unused, | ||
| 23286 | .unused, | ||
| 23287 | .unused, | ||
| 23288 | .unused, | ||
| 23289 | .unused, | ||
| 23290 | .unused, | ||
| 23291 | .unused, | ||
| 23292 | }, | ||
| 23293 | .dst_temps = .{.mem}, | ||
| 23294 | .clobbers = .{ .eflags = true }, | ||
| 23295 | .each = .{ .once = &.{ | ||
| 23296 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | ||
| 23297 | .{ .@"0:", .v_ps, .cvtph2, .tmp1y, .memia(.src0x, .tmp0, .add_size), ._, ._ }, | ||
| 23298 | .{ ._, .v_ps, .mova, .memsia(.dst0y, .@"2", .tmp0, .add_size), .tmp1y, ._, ._ }, | ||
| 23299 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | ||
| 23300 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 23301 | } }, | ||
| 23302 | }, .{ | ||
| 23303 | .required_features = .{ .avx, null, null, null }, | ||
| 23304 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, | ||
| 23305 | .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }}, | ||
| 23306 | .patterns = &.{ | ||
| 23307 | .{ .src = .{ .to_mem, .none } }, | ||
| 23308 | }, | ||
| 23309 | .call_frame = .{ .alignment = .@"16" }, | ||
| 23310 | .extra_temps = .{ | ||
| 23311 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 23312 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | ||
| 23313 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__extendhfsf2" } } }, | ||
| 23314 | .unused, | ||
| 23315 | .unused, | ||
| 23316 | .unused, | ||
| 23317 | .unused, | ||
| 23318 | .unused, | ||
| 23319 | .unused, | ||
| 23320 | }, | ||
| 23321 | .dst_temps = .{.mem}, | ||
| 23322 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | ||
| 23323 | .each = .{ .once = &.{ | ||
| 23324 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | ||
| 23325 | .{ .@"0:", .vp_, .xor, .tmp1x, .tmp1x, .tmp1x, ._ }, | ||
| 23326 | .{ ._, .vp_w, .insr, .tmp1x, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0) }, | ||
| 23327 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | ||
| 23328 | .{ ._, .v_ss, .mov, .memsia(.dst0d, .@"2", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, | ||
| 23329 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | ||
| 23330 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 23331 | } }, | ||
| 23332 | }, .{ | ||
| 23333 | .required_features = .{ .sse2, null, null, null }, | ||
| 23334 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, | ||
| 23335 | .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }}, | ||
| 23336 | .patterns = &.{ | ||
| 23337 | .{ .src = .{ .to_mem, .none } }, | ||
| 23338 | }, | ||
| 23339 | .call_frame = .{ .alignment = .@"16" }, | ||
| 23340 | .extra_temps = .{ | ||
| 23341 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 23342 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | ||
| 23343 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__extendhfsf2" } } }, | ||
| 23344 | .unused, | ||
| 23345 | .unused, | ||
| 23346 | .unused, | ||
| 23347 | .unused, | ||
| 23348 | .unused, | ||
| 23349 | .unused, | ||
| 23350 | }, | ||
| 23351 | .dst_temps = .{.mem}, | ||
| 23352 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | ||
| 23353 | .each = .{ .once = &.{ | ||
| 23354 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | ||
| 23355 | .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ }, | ||
| 23356 | .{ ._, .p_w, .insr, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0), ._ }, | ||
| 23357 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | ||
| 23358 | .{ ._, ._ss, .mov, .memsia(.dst0d, .@"2", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, | ||
| 23359 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | ||
| 23360 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 23361 | } }, | ||
| 23362 | }, .{ | ||
| 23363 | .required_features = .{ .sse, null, null, null }, | ||
| 23364 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, | ||
| 23365 | .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }}, | ||
| 23366 | .patterns = &.{ | ||
| 23367 | .{ .src = .{ .to_mem, .none } }, | ||
| 23368 | }, | ||
| 23369 | .call_frame = .{ .alignment = .@"16" }, | ||
| 23370 | .extra_temps = .{ | ||
| 23371 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 23372 | .{ .type = .f16, .kind = .{ .reg = .ax } }, | ||
| 23373 | .{ .type = .f32, .kind = .mem }, | ||
| 23374 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | ||
| 23375 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__extendhfsf2" } } }, | ||
| 23376 | .unused, | ||
| 23377 | .unused, | ||
| 23378 | .unused, | ||
| 23379 | .unused, | ||
| 23380 | }, | ||
| 23381 | .dst_temps = .{.mem}, | ||
| 23382 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | ||
| 23383 | .each = .{ .once = &.{ | ||
| 23384 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | ||
| 23385 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, | ||
| 23386 | .{ ._, ._, .mov, .mem(.tmp2d), .tmp1d, ._, ._ }, | ||
| 23387 | .{ ._, ._ss, .mov, .tmp3x, .mem(.tmp2d), ._, ._ }, | ||
| 23388 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, | ||
| 23389 | .{ ._, ._ss, .mov, .memsia(.dst0d, .@"2", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, | ||
| 23390 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | ||
| 23391 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 23392 | } }, | ||
| 23393 | }, .{ | ||
| 23394 | .required_features = .{ .f16c, null, null, null }, | ||
| 23395 | .src_constraints = .{ .{ .scalar_float = .{ .of = .word, .is = .word } }, .any }, | ||
| 23396 | .dst_constraints = .{.{ .scalar_float = .{ .of = .qword, .is = .qword } }}, | ||
| 23397 | .patterns = &.{ | ||
| 23398 | .{ .src = .{ .to_sse, .none } }, | ||
| 23399 | }, | ||
| 23400 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, | ||
| 23401 | .each = .{ .once = &.{ | ||
| 23402 | .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ }, | ||
| 23403 | .{ ._, .v_sd, .cvtss2, .dst0x, .dst0x, .dst0d, ._ }, | ||
| 23404 | } }, | ||
| 23405 | }, .{ | ||
| 23406 | .required_features = .{ .f16c, null, null, null }, | ||
| 23407 | .src_constraints = .{ .{ .scalar_float = .{ .of = .dword, .is = .word } }, .any }, | ||
| 23408 | .dst_constraints = .{.{ .scalar_float = .{ .of = .xword, .is = .qword } }}, | ||
| 23409 | .patterns = &.{ | ||
| 23410 | .{ .src = .{ .mem, .none } }, | ||
| 23411 | .{ .src = .{ .to_sse, .none } }, | ||
| 23412 | }, | ||
| 23413 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, | ||
| 23414 | .each = .{ .once = &.{ | ||
| 23415 | .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ }, | ||
| 23416 | .{ ._, .v_pd, .cvtps2, .dst0x, .dst0q, ._, ._ }, | ||
| 23417 | } }, | ||
| 23418 | }, .{ | ||
| 23419 | .required_features = .{ .f16c, null, null, null }, | ||
| 23420 | .src_constraints = .{ .{ .scalar_float = .{ .of = .qword, .is = .word } }, .any }, | ||
| 23421 | .dst_constraints = .{.{ .scalar_float = .{ .of = .yword, .is = .qword } }}, | ||
| 23422 | .patterns = &.{ | ||
| 23423 | .{ .src = .{ .mem, .none } }, | ||
| 23424 | .{ .src = .{ .to_sse, .none } }, | ||
| 23425 | }, | ||
| 23426 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, | ||
| 23427 | .each = .{ .once = &.{ | ||
| 23428 | .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ }, | ||
| 23429 | .{ ._, .v_pd, .cvtps2, .dst0y, .dst0x, ._, ._ }, | ||
| 23430 | } }, | ||
| 23431 | }, .{ | ||
| 23432 | .required_features = .{ .f16c, null, null, null }, | ||
| 23433 | .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .word } }, .any }, | ||
| 23434 | .dst_constraints = .{.{ .scalar_float = .{ .of = .zword, .is = .qword } }}, | ||
| 23435 | .patterns = &.{ | ||
| 23436 | .{ .src = .{ .mem, .none } }, | ||
| 23437 | .{ .src = .{ .to_sse, .none } }, | ||
| 23438 | }, | ||
| 23439 | .extra_temps = .{ | ||
| 23440 | .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } }, | ||
| 23441 | .{ .type = .vector_4_f64, .kind = .{ .rc = .sse } }, | ||
| 23442 | .unused, | ||
| 23443 | .unused, | ||
| 23444 | .unused, | ||
| 23445 | .unused, | ||
| 23446 | .unused, | ||
| 23447 | .unused, | ||
| 23448 | .unused, | ||
| 23449 | }, | ||
| 23450 | .dst_temps = .{.mem}, | ||
| 23451 | .each = .{ .once = &.{ | ||
| 23452 | .{ ._, .v_ps, .cvtph2, .tmp0y, .src0x, ._, ._ }, | ||
| 23453 | .{ ._, .v_pd, .cvtps2, .tmp1y, .tmp0x, ._, ._ }, | ||
| 23454 | .{ ._, .v_f128, .extract, .tmp0x, .tmp0y, .ui(1), ._ }, | ||
| 23455 | .{ ._, .v_pd, .mova, .mem(.dst0y), .tmp1y, ._, ._ }, | ||
| 23456 | .{ ._, .v_pd, .cvtps2, .tmp1y, .tmp0x, ._, ._ }, | ||
| 23457 | .{ ._, .v_pd, .mova, .memd(.dst0y, 32), .tmp1y, ._, ._ }, | ||
| 23458 | } }, | ||
| 23459 | }, .{ | ||
| 23460 | .required_features = .{ .sse, null, null, null }, | ||
| 23461 | .src_constraints = .{ .{ .scalar_float = .{ .of = .word, .is = .word } }, .any }, | ||
| 23462 | .dst_constraints = .{.{ .scalar_float = .{ .of = .qword, .is = .qword } }}, | ||
| 23463 | .patterns = &.{ | ||
| 23464 | .{ .src = .{ .{ .to_reg = .xmm0 }, .none } }, | ||
| 23465 | }, | ||
| 23466 | .call_frame = .{ .alignment = .@"16" }, | ||
| 23467 | .extra_temps = .{ | ||
| 23468 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__extendhfdf2" } } }, | ||
| 23469 | .unused, | ||
| 23470 | .unused, | ||
| 23471 | .unused, | ||
| 23472 | .unused, | ||
| 23473 | .unused, | ||
| 23474 | .unused, | ||
| 23475 | .unused, | ||
| 23476 | .unused, | ||
| 23477 | }, | ||
| 23478 | .dst_temps = .{.{ .ref = .src0 }}, | ||
| 23479 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | ||
| 23480 | .each = .{ .once = &.{ | ||
| 23481 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, | ||
| 23482 | } }, | ||
| 23483 | }, .{ | ||
| 23484 | .required_features = .{ .f16c, null, null, null }, | ||
| 23485 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .word } }, .any }, | ||
| 23486 | .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .zword, .is = .qword } }}, | ||
| 23487 | .patterns = &.{ | ||
| 23488 | .{ .src = .{ .to_mem, .none } }, | ||
| 23489 | }, | ||
| 23490 | .extra_temps = .{ | ||
| 23491 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 23492 | .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } }, | ||
| 23493 | .{ .type = .vector_4_f64, .kind = .{ .rc = .sse } }, | ||
| 23494 | .unused, | ||
| 23495 | .unused, | ||
| 23496 | .unused, | ||
| 23497 | .unused, | ||
| 23498 | .unused, | ||
| 23499 | .unused, | ||
| 23500 | }, | ||
| 23501 | .dst_temps = .{.mem}, | ||
| 23502 | .clobbers = .{ .eflags = true }, | ||
| 23503 | .each = .{ .once = &.{ | ||
| 23504 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | ||
| 23505 | .{ .@"0:", .v_ps, .cvtph2, .tmp1y, .memia(.src0x, .tmp0, .add_size), ._, ._ }, | ||
| 23506 | .{ ._, .v_pd, .cvtps2, .tmp2y, .tmp1x, ._, ._ }, | ||
| 23507 | .{ ._, .v_f128, .extract, .tmp1x, .tmp1y, .ui(1), ._ }, | ||
| 23508 | .{ ._, .v_pd, .mova, .memsia(.dst0y, .@"4", .tmp0, .add_size), .tmp2y, ._, ._ }, | ||
| 23509 | .{ ._, .v_pd, .cvtps2, .tmp2y, .tmp1x, ._, ._ }, | ||
| 23510 | .{ ._, .v_pd, .mova, .memsiad(.dst0y, .@"4", .tmp0, .add_size, 32), .tmp2y, ._, ._ }, | ||
| 23511 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | ||
| 23512 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 23513 | } }, | ||
| 23514 | }, .{ | ||
| 23515 | .required_features = .{ .avx, null, null, null }, | ||
| 23516 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, | ||
| 23517 | .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }}, | ||
| 23518 | .patterns = &.{ | ||
| 23519 | .{ .src = .{ .to_mem, .none } }, | ||
| 23520 | }, | ||
| 23521 | .call_frame = .{ .alignment = .@"16" }, | ||
| 23522 | .extra_temps = .{ | ||
| 23523 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 23524 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | ||
| 23525 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__extendhfdf2" } } }, | ||
| 23526 | .unused, | ||
| 23527 | .unused, | ||
| 23528 | .unused, | ||
| 23529 | .unused, | ||
| 23530 | .unused, | ||
| 23531 | .unused, | ||
| 23532 | }, | ||
| 23533 | .dst_temps = .{.mem}, | ||
| 23534 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | ||
| 23535 | .each = .{ .once = &.{ | ||
| 23536 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | ||
| 23537 | .{ .@"0:", .vp_, .xor, .tmp1x, .tmp1x, .tmp1x, ._ }, | ||
| 23538 | .{ ._, .vp_w, .insr, .tmp1x, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0) }, | ||
| 23539 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | ||
| 23540 | .{ ._, .v_sd, .mov, .memsia(.dst0q, .@"4", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, | ||
| 23541 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | ||
| 23542 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 23543 | } }, | ||
| 23544 | }, .{ | ||
| 23545 | .required_features = .{ .sse2, null, null, null }, | ||
| 23546 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, | ||
| 23547 | .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }}, | ||
| 23548 | .patterns = &.{ | ||
| 23549 | .{ .src = .{ .to_mem, .none } }, | ||
| 23550 | }, | ||
| 23551 | .call_frame = .{ .alignment = .@"16" }, | ||
| 23552 | .extra_temps = .{ | ||
| 23553 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 23554 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | ||
| 23555 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__extendhfdf2" } } }, | ||
| 23556 | .unused, | ||
| 23557 | .unused, | ||
| 23558 | .unused, | ||
| 23559 | .unused, | ||
| 23560 | .unused, | ||
| 23561 | .unused, | ||
| 23562 | }, | ||
| 23563 | .dst_temps = .{.mem}, | ||
| 23564 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | ||
| 23565 | .each = .{ .once = &.{ | ||
| 23566 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | ||
| 23567 | .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ }, | ||
| 23568 | .{ ._, .p_w, .insr, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0), ._ }, | ||
| 23569 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | ||
| 23570 | .{ ._, ._sd, .mov, .memsia(.dst0q, .@"4", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, | ||
| 23571 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | ||
| 23572 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 23573 | } }, | ||
| 23574 | }, .{ | ||
| 23575 | .required_features = .{ .sse, null, null, null }, | ||
| 23576 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, | ||
| 23577 | .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }}, | ||
| 23578 | .patterns = &.{ | ||
| 23579 | .{ .src = .{ .to_mem, .none } }, | ||
| 23580 | }, | ||
| 23581 | .call_frame = .{ .alignment = .@"16" }, | ||
| 23582 | .extra_temps = .{ | ||
| 23583 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 23584 | .{ .type = .f16, .kind = .{ .reg = .ax } }, | ||
| 23585 | .{ .type = .f32, .kind = .mem }, | ||
| 23586 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | ||
| 23587 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__extendhfdf2" } } }, | ||
| 23588 | .unused, | ||
| 23589 | .unused, | ||
| 23590 | .unused, | ||
| 23591 | .unused, | ||
| 23592 | }, | ||
| 23593 | .dst_temps = .{.mem}, | ||
| 23594 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | ||
| 23595 | .each = .{ .once = &.{ | ||
| 23596 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | ||
| 23597 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, | ||
| 23598 | .{ ._, ._, .mov, .mem(.tmp2d), .tmp1d, ._, ._ }, | ||
| 23599 | .{ ._, ._ss, .mov, .tmp3x, .mem(.tmp2d), ._, ._ }, | ||
| 23600 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, | ||
| 23601 | .{ ._, ._ps, .movl, .memsia(.dst0q, .@"4", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, | ||
| 23602 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | ||
| 23603 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 23604 | } }, | ||
| 23605 | }, .{ | ||
| 23606 | .required_features = .{ .f16c, .x87, null, null }, | ||
| 23607 | .src_constraints = .{ .{ .scalar_float = .{ .of = .word, .is = .word } }, .any }, | ||
| 23608 | .dst_constraints = .{.{ .scalar_float = .{ .of = .xword, .is = .tbyte } }}, | ||
| 23609 | .patterns = &.{ | ||
| 23610 | .{ .src = .{ .to_sse, .none } }, | ||
| 23611 | }, | ||
| 23612 | .extra_temps = .{ | ||
| 23613 | .{ .type = .f32, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, | ||
| 23614 | .{ .type = .f32, .kind = .mem }, | ||
| 23615 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, | ||
| 23616 | .unused, | ||
| 23617 | .unused, | ||
| 23618 | .unused, | ||
| 23619 | .unused, | ||
| 23620 | .unused, | ||
| 23621 | .unused, | ||
| 23622 | }, | ||
| 23623 | .dst_temps = .{.{ .rc = .x87 }}, | ||
| 23624 | .each = .{ .once = &.{ | ||
| 23625 | .{ ._, .v_ps, .cvtph2, .tmp0x, .src0q, ._, ._ }, | ||
| 23626 | .{ ._, .v_ss, .mov, .mem(.tmp1d), .tmp0x, ._, ._ }, | ||
| 23627 | .{ ._, .f_, .ld, .mem(.tmp1d), ._, ._, ._ }, | ||
| 23628 | .{ ._, .f_p, .st, .dst0t, ._, ._, ._ }, | ||
| 23629 | } }, | ||
| 23630 | }, .{ | ||
| 23631 | .required_features = .{ .sse, null, null, null }, | ||
| 23632 | .src_constraints = .{ .{ .scalar_float = .{ .of = .word, .is = .word } }, .any }, | ||
| 23633 | .dst_constraints = .{.{ .scalar_float = .{ .of = .xword, .is = .tbyte } }}, | ||
| 23634 | .patterns = &.{ | ||
| 23635 | .{ .src = .{ .{ .to_reg = .xmm0 }, .none } }, | ||
| 23636 | }, | ||
| 23637 | .call_frame = .{ .alignment = .@"16" }, | ||
| 23638 | .extra_temps = .{ | ||
| 23639 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__extendhfxf2" } } }, | ||
| 23640 | .unused, | ||
| 23641 | .unused, | ||
| 23642 | .unused, | ||
| 23643 | .unused, | ||
| 23644 | .unused, | ||
| 23645 | .unused, | ||
| 23646 | .unused, | ||
| 23647 | .unused, | ||
| 23648 | }, | ||
| 23649 | .dst_temps = .{.{ .reg = .st0 }}, | ||
| 23650 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | ||
| 23651 | .each = .{ .once = &.{ | ||
| 23652 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, | ||
| 23653 | } }, | ||
| 23654 | }, .{ | ||
| 23655 | .required_features = .{ .avx, null, null, null }, | ||
| 23656 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, | ||
| 23657 | .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }}, | ||
| 23658 | .patterns = &.{ | ||
| 23659 | .{ .src = .{ .to_mem, .none } }, | ||
| 23660 | }, | ||
| 23661 | .call_frame = .{ .alignment = .@"16" }, | ||
| 23662 | .extra_temps = .{ | ||
| 23663 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 23664 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | ||
| 23665 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__extendhfxf2" } } }, | ||
| 23666 | .unused, | ||
| 23667 | .unused, | ||
| 23668 | .unused, | ||
| 23669 | .unused, | ||
| 23670 | .unused, | ||
| 23671 | .unused, | ||
| 23672 | }, | ||
| 23673 | .dst_temps = .{.mem}, | ||
| 23674 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | ||
| 23675 | .each = .{ .once = &.{ | ||
| 23676 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | ||
| 23677 | .{ .@"0:", .vp_, .xor, .tmp1x, .tmp1x, .tmp1x, ._ }, | ||
| 23678 | .{ ._, .vp_w, .insr, .tmp1x, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0) }, | ||
| 23679 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | ||
| 23680 | .{ .pseudo, .f_cstp, .de, ._, ._, ._, ._ }, | ||
| 23681 | .{ ._, .f_p, .st, .memsia(.dst0t, .@"8", .tmp0, .add_unaligned_size), ._, ._, ._ }, | ||
| 23682 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | ||
| 23683 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 23684 | } }, | ||
| 23685 | }, .{ | ||
| 23686 | .required_features = .{ .sse2, null, null, null }, | ||
| 23687 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, | ||
| 23688 | .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }}, | ||
| 23689 | .patterns = &.{ | ||
| 23690 | .{ .src = .{ .to_mem, .none } }, | ||
| 23691 | }, | ||
| 23692 | .call_frame = .{ .alignment = .@"16" }, | ||
| 23693 | .extra_temps = .{ | ||
| 23694 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 23695 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | ||
| 23696 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__extendhfxf2" } } }, | ||
| 23697 | .unused, | ||
| 23698 | .unused, | ||
| 23699 | .unused, | ||
| 23700 | .unused, | ||
| 23701 | .unused, | ||
| 23702 | .unused, | ||
| 23703 | }, | ||
| 23704 | .dst_temps = .{.mem}, | ||
| 23705 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | ||
| 23706 | .each = .{ .once = &.{ | ||
| 23707 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | ||
| 23708 | .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ }, | ||
| 23709 | .{ ._, .p_w, .insr, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0), ._ }, | ||
| 23710 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | ||
| 23711 | .{ .pseudo, .f_cstp, .de, ._, ._, ._, ._ }, | ||
| 23712 | .{ ._, .f_p, .st, .memsia(.dst0t, .@"8", .tmp0, .add_unaligned_size), ._, ._, ._ }, | ||
| 23713 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | ||
| 23714 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 23715 | } }, | ||
| 23716 | }, .{ | ||
| 23717 | .required_features = .{ .sse, null, null, null }, | ||
| 23718 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, | ||
| 23719 | .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }}, | ||
| 23720 | .patterns = &.{ | ||
| 23721 | .{ .src = .{ .to_mem, .none } }, | ||
| 23722 | }, | ||
| 23723 | .call_frame = .{ .alignment = .@"16" }, | ||
| 23724 | .extra_temps = .{ | ||
| 23725 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 23726 | .{ .type = .f16, .kind = .{ .reg = .ax } }, | ||
| 23727 | .{ .type = .f32, .kind = .mem }, | ||
| 23728 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | ||
| 23729 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__extendhfxf2" } } }, | ||
| 23730 | .unused, | ||
| 23731 | .unused, | ||
| 23732 | .unused, | ||
| 23733 | .unused, | ||
| 23734 | }, | ||
| 23735 | .dst_temps = .{.mem}, | ||
| 23736 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | ||
| 23737 | .each = .{ .once = &.{ | ||
| 23738 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | ||
| 23739 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, | ||
| 23740 | .{ ._, ._, .mov, .mem(.tmp2d), .tmp1d, ._, ._ }, | ||
| 23741 | .{ ._, ._ss, .mov, .tmp3x, .mem(.tmp2d), ._, ._ }, | ||
| 23742 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, | ||
| 23743 | .{ .pseudo, .f_cstp, .de, ._, ._, ._, ._ }, | ||
| 23744 | .{ ._, .f_p, .st, .memsia(.dst0t, .@"8", .tmp0, .add_unaligned_size), ._, ._, ._ }, | ||
| 23745 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | ||
| 23746 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 23747 | } }, | ||
| 23748 | }, .{ | ||
| 23749 | .required_features = .{ .sse, null, null, null }, | ||
| 23750 | .src_constraints = .{ .{ .scalar_float = .{ .of = .word, .is = .word } }, .any }, | ||
| 23751 | .dst_constraints = .{.{ .scalar_float = .{ .of = .xword, .is = .xword } }}, | ||
| 23752 | .patterns = &.{ | ||
| 23753 | .{ .src = .{ .{ .to_reg = .xmm0 }, .none } }, | ||
| 23754 | }, | ||
| 23755 | .call_frame = .{ .alignment = .@"16" }, | ||
| 23756 | .extra_temps = .{ | ||
| 23757 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__extendhftf2" } } }, | ||
| 23758 | .unused, | ||
| 23759 | .unused, | ||
| 23760 | .unused, | ||
| 23761 | .unused, | ||
| 23762 | .unused, | ||
| 23763 | .unused, | ||
| 23764 | .unused, | ||
| 23765 | .unused, | ||
| 23766 | }, | ||
| 23767 | .dst_temps = .{.{ .ref = .src0 }}, | ||
| 23768 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | ||
| 23769 | .each = .{ .once = &.{ | ||
| 23770 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, | ||
| 23771 | } }, | ||
| 23772 | }, .{ | ||
| 23773 | .required_features = .{ .avx, null, null, null }, | ||
| 23774 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, | ||
| 23775 | .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }}, | ||
| 23776 | .patterns = &.{ | ||
| 23777 | .{ .src = .{ .to_mem, .none } }, | ||
| 23778 | }, | ||
| 23779 | .call_frame = .{ .alignment = .@"16" }, | ||
| 23780 | .extra_temps = .{ | ||
| 23781 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 23782 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | ||
| 23783 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__extendhftf2" } } }, | ||
| 23784 | .unused, | ||
| 23785 | .unused, | ||
| 23786 | .unused, | ||
| 23787 | .unused, | ||
| 23788 | .unused, | ||
| 23789 | .unused, | ||
| 23790 | }, | ||
| 23791 | .dst_temps = .{.mem}, | ||
| 23792 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | ||
| 23793 | .each = .{ .once = &.{ | ||
| 23794 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | ||
| 23795 | .{ .@"0:", .vp_, .xor, .tmp1x, .tmp1x, .tmp1x, ._ }, | ||
| 23796 | .{ ._, .vp_w, .insr, .tmp1x, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0) }, | ||
| 23797 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | ||
| 23798 | .{ ._, .v_dqa, .mov, .memsia(.dst0x, .@"8", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, | ||
| 23799 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | ||
| 23800 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 23801 | } }, | ||
| 23802 | }, .{ | ||
| 23803 | .required_features = .{ .sse2, null, null, null }, | ||
| 23804 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, | ||
| 23805 | .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }}, | ||
| 23806 | .patterns = &.{ | ||
| 23807 | .{ .src = .{ .to_mem, .none } }, | ||
| 23808 | }, | ||
| 23809 | .call_frame = .{ .alignment = .@"16" }, | ||
| 23810 | .extra_temps = .{ | ||
| 23811 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 23812 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | ||
| 23813 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__extendhftf2" } } }, | ||
| 23814 | .unused, | ||
| 23815 | .unused, | ||
| 23816 | .unused, | ||
| 23817 | .unused, | ||
| 23818 | .unused, | ||
| 23819 | .unused, | ||
| 23820 | }, | ||
| 23821 | .dst_temps = .{.mem}, | ||
| 23822 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | ||
| 23823 | .each = .{ .once = &.{ | ||
| 23824 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | ||
| 23825 | .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ }, | ||
| 23826 | .{ ._, .p_w, .insr, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0), ._ }, | ||
| 23827 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | ||
| 23828 | .{ ._, ._dqa, .mov, .memsia(.dst0x, .@"8", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, | ||
| 23829 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | ||
| 23830 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 23831 | } }, | ||
| 23832 | }, .{ | ||
| 23833 | .required_features = .{ .sse, null, null, null }, | ||
| 23834 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, | ||
| 23835 | .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }}, | ||
| 23836 | .patterns = &.{ | ||
| 23837 | .{ .src = .{ .to_mem, .none } }, | ||
| 23838 | }, | ||
| 23839 | .call_frame = .{ .alignment = .@"16" }, | ||
| 23840 | .extra_temps = .{ | ||
| 23841 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 23842 | .{ .type = .f16, .kind = .{ .reg = .ax } }, | ||
| 23843 | .{ .type = .f32, .kind = .mem }, | ||
| 23844 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | ||
| 23845 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__extendhftf2" } } }, | ||
| 23846 | .unused, | ||
| 23847 | .unused, | ||
| 23848 | .unused, | ||
| 23849 | .unused, | ||
| 23850 | }, | ||
| 23851 | .dst_temps = .{.mem}, | ||
| 23852 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | ||
| 23853 | .each = .{ .once = &.{ | ||
| 23854 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | ||
| 23855 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, | ||
| 23856 | .{ ._, ._, .mov, .mem(.tmp2d), .tmp1d, ._, ._ }, | ||
| 23857 | .{ ._, ._ss, .mov, .tmp3x, .mem(.tmp2d), ._, ._ }, | ||
| 23858 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, | ||
| 23859 | .{ ._, ._ps, .mova, .memsia(.dst0x, .@"8", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, | ||
| 23860 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | ||
| 23861 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 23862 | } }, | ||
| 23863 | }, .{ | ||
| 23864 | .required_features = .{ .avx, null, null, null }, | ||
| 23865 | .src_constraints = .{ .{ .scalar_float = .{ .of = .dword, .is = .dword } }, .any }, | ||
| 23866 | .dst_constraints = .{.{ .scalar_float = .{ .of = .qword, .is = .qword } }}, | ||
| 23867 | .patterns = &.{ | ||
| 23868 | .{ .src = .{ .mem, .none } }, | ||
| 23869 | }, | ||
| 23870 | .dst_temps = .{.{ .rc = .sse }}, | ||
| 23871 | .each = .{ .once = &.{ | ||
| 23872 | .{ ._, .v_pd, .xor, .dst0x, .dst0x, .dst0x, ._ }, | ||
| 23873 | .{ ._, .v_sd, .cvtss2, .dst0x, .dst0x, .src0d, ._ }, | ||
| 23874 | } }, | ||
| 23875 | }, .{ | ||
| 23876 | .required_features = .{ .avx, null, null, null }, | ||
| 23877 | .src_constraints = .{ .{ .scalar_float = .{ .of = .dword, .is = .dword } }, .any }, | ||
| 23878 | .dst_constraints = .{.{ .scalar_float = .{ .of = .qword, .is = .qword } }}, | ||
| 23879 | .patterns = &.{ | ||
| 23880 | .{ .src = .{ .to_sse, .none } }, | ||
| 23881 | }, | ||
| 23882 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, | ||
| 23883 | .each = .{ .once = &.{ | ||
| 23884 | .{ ._, .v_sd, .cvtss2, .dst0x, .src0x, .src0d, ._ }, | ||
| 23885 | } }, | ||
| 23886 | }, .{ | ||
| 23887 | .required_features = .{ .sse2, null, null, null }, | ||
| 23888 | .src_constraints = .{ .{ .scalar_float = .{ .of = .dword, .is = .dword } }, .any }, | ||
| 23889 | .dst_constraints = .{.{ .scalar_float = .{ .of = .qword, .is = .qword } }}, | ||
| 23890 | .patterns = &.{ | ||
| 23891 | .{ .src = .{ .mem, .none } }, | ||
| 23892 | .{ .src = .{ .to_sse, .none } }, | ||
| 23893 | }, | ||
| 23894 | .dst_temps = .{.{ .rc = .sse }}, | ||
| 23895 | .each = .{ .once = &.{ | ||
| 23896 | .{ ._, ._pd, .xor, .dst0x, .dst0x, ._, ._ }, | ||
| 23897 | .{ ._, ._sd, .cvtss2, .dst0x, .src0d, ._, ._ }, | ||
| 23898 | } }, | ||
| 23899 | }, .{ | ||
| 23900 | .required_features = .{ .x87, null, null, null }, | ||
| 23901 | .src_constraints = .{ .{ .scalar_float = .{ .of = .dword, .is = .dword } }, .any }, | ||
| 23902 | .dst_constraints = .{.{ .scalar_float = .{ .of = .qword, .is = .qword } }}, | ||
| 23903 | .patterns = &.{ | ||
| 23904 | .{ .src = .{ .to_mem, .none } }, | ||
| 23905 | }, | ||
| 23906 | .extra_temps = .{ | ||
| 23907 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, | ||
| 23908 | .unused, | ||
| 23909 | .unused, | ||
| 23910 | .unused, | ||
| 23911 | .unused, | ||
| 23912 | .unused, | ||
| 23913 | .unused, | ||
| 23914 | .unused, | ||
| 23915 | .unused, | ||
| 23916 | }, | ||
| 23917 | .dst_temps = .{.mem}, | ||
| 23918 | .each = .{ .once = &.{ | ||
| 23919 | .{ ._, .f_, .ld, .src0d, ._, ._, ._ }, | ||
| 23920 | .{ ._, .f_p, .st, .dst0q, ._, ._, ._ }, | ||
| 23921 | } }, | ||
| 23922 | }, .{ | ||
| 23923 | .required_features = .{ .avx, null, null, null }, | ||
| 23924 | .src_constraints = .{ .{ .scalar_float = .{ .of = .qword, .is = .dword } }, .any }, | ||
| 23925 | .dst_constraints = .{.{ .scalar_float = .{ .of = .xword, .is = .qword } }}, | ||
| 23926 | .patterns = &.{ | ||
| 23927 | .{ .src = .{ .mem, .none } }, | ||
| 23928 | .{ .src = .{ .to_sse, .none } }, | ||
| 23929 | }, | ||
| 23930 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, | ||
| 23931 | .each = .{ .once = &.{ | ||
| 23932 | .{ ._, .v_pd, .cvtps2, .dst0x, .src0q, ._, ._ }, | ||
| 23933 | } }, | ||
| 23934 | }, .{ | ||
| 23935 | .required_features = .{ .sse2, null, null, null }, | ||
| 23936 | .src_constraints = .{ .{ .scalar_float = .{ .of = .qword, .is = .dword } }, .any }, | ||
| 23937 | .dst_constraints = .{.{ .scalar_float = .{ .of = .xword, .is = .qword } }}, | ||
| 23938 | .patterns = &.{ | ||
| 23939 | .{ .src = .{ .mem, .none } }, | ||
| 23940 | .{ .src = .{ .to_sse, .none } }, | ||
| 23941 | }, | ||
| 23942 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, | ||
| 23943 | .each = .{ .once = &.{ | ||
| 23944 | .{ ._, ._pd, .cvtps2, .dst0x, .src0q, ._, ._ }, | ||
| 23945 | } }, | ||
| 23946 | }, .{ | ||
| 23947 | .required_features = .{ .avx, null, null, null }, | ||
| 23948 | .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .dword } }, .any }, | ||
| 23949 | .dst_constraints = .{.{ .scalar_float = .{ .of = .yword, .is = .qword } }}, | ||
| 23950 | .patterns = &.{ | ||
| 23951 | .{ .src = .{ .mem, .none } }, | ||
| 23952 | .{ .src = .{ .to_sse, .none } }, | ||
| 23953 | }, | ||
| 23954 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, | ||
| 23955 | .each = .{ .once = &.{ | ||
| 23956 | .{ ._, .v_pd, .cvtps2, .dst0y, .src0x, ._, ._ }, | ||
| 23957 | } }, | ||
| 23958 | }, .{ | ||
| 23959 | .required_features = .{ .avx, null, null, null }, | ||
| 23960 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any }, | ||
| 23961 | .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .yword, .is = .qword } }}, | ||
| 23962 | .patterns = &.{ | ||
| 23963 | .{ .src = .{ .to_mem, .none } }, | ||
| 23964 | }, | ||
| 23965 | .extra_temps = .{ | ||
| 23966 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 23967 | .{ .type = .vector_4_f64, .kind = .{ .rc = .sse } }, | ||
| 23968 | .unused, | ||
| 23969 | .unused, | ||
| 23970 | .unused, | ||
| 23971 | .unused, | ||
| 23972 | .unused, | ||
| 23973 | .unused, | ||
| 23974 | .unused, | ||
| 23975 | }, | ||
| 23976 | .dst_temps = .{.mem}, | ||
| 23977 | .clobbers = .{ .eflags = true }, | ||
| 23978 | .each = .{ .once = &.{ | ||
| 23979 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | ||
| 23980 | .{ .@"0:", .v_pd, .cvtps2, .tmp1y, .memia(.src0x, .tmp0, .add_size), ._, ._ }, | ||
| 23981 | .{ ._, .v_pd, .mova, .memsia(.dst0y, .@"2", .tmp0, .add_size), .tmp1y, ._, ._ }, | ||
| 23982 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | ||
| 23983 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 23984 | } }, | ||
| 23985 | }, .{ | ||
| 23986 | .required_features = .{ .sse2, null, null, null }, | ||
| 23987 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .dword } }, .any }, | ||
| 23988 | .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }}, | ||
| 23989 | .patterns = &.{ | ||
| 23990 | .{ .src = .{ .to_mem, .none } }, | ||
| 23991 | }, | ||
| 23992 | .extra_temps = .{ | ||
| 23993 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 23994 | .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } }, | ||
| 23995 | .unused, | ||
| 23996 | .unused, | ||
| 23997 | .unused, | ||
| 23998 | .unused, | ||
| 23999 | .unused, | ||
| 24000 | .unused, | ||
| 24001 | .unused, | ||
| 24002 | }, | ||
| 24003 | .dst_temps = .{.mem}, | ||
| 24004 | .clobbers = .{ .eflags = true }, | ||
| 24005 | .each = .{ .once = &.{ | ||
| 24006 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | ||
| 24007 | .{ .@"0:", ._pd, .cvtps2, .tmp1x, .memia(.src0q, .tmp0, .add_size), ._, ._ }, | ||
| 24008 | .{ ._, ._pd, .mova, .memsia(.dst0x, .@"2", .tmp0, .add_size), .tmp1x, ._, ._ }, | ||
| 24009 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | ||
| 24010 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 24011 | } }, | ||
| 24012 | }, .{ | ||
| 24013 | .required_features = .{ .x87, null, null, null }, | ||
| 24014 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, | ||
| 24015 | .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }}, | ||
| 24016 | .patterns = &.{ | ||
| 24017 | .{ .src = .{ .to_mem, .none } }, | ||
| 24018 | }, | ||
| 24019 | .extra_temps = .{ | ||
| 24020 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 24021 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, | ||
| 24022 | .unused, | ||
| 24023 | .unused, | ||
| 24024 | .unused, | ||
| 24025 | .unused, | ||
| 24026 | .unused, | ||
| 24027 | .unused, | ||
| 24028 | .unused, | ||
| 24029 | }, | ||
| 24030 | .dst_temps = .{.mem}, | ||
| 24031 | .clobbers = .{ .eflags = true }, | ||
| 24032 | .each = .{ .once = &.{ | ||
| 24033 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | ||
| 24034 | .{ .@"0:", .f_, .ld, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._, ._ }, | ||
| 24035 | .{ ._, .f_p, .st, .memsia(.dst0q, .@"2", .tmp0, .add_unaligned_size), ._, ._, ._ }, | ||
| 24036 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | ||
| 24037 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 24038 | } }, | ||
| 24039 | }, .{ | ||
| 24040 | .required_features = .{ .x87, null, null, null }, | ||
| 24041 | .src_constraints = .{ .{ .scalar_float = .{ .of = .dword, .is = .dword } }, .any }, | ||
| 24042 | .dst_constraints = .{.{ .scalar_float = .{ .of = .xword, .is = .tbyte } }}, | ||
| 24043 | .patterns = &.{ | ||
| 24044 | .{ .src = .{ .to_mem, .none } }, | ||
| 24045 | }, | ||
| 24046 | .extra_temps = .{ | ||
| 24047 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, | ||
| 24048 | .unused, | ||
| 24049 | .unused, | ||
| 24050 | .unused, | ||
| 24051 | .unused, | ||
| 24052 | .unused, | ||
| 24053 | .unused, | ||
| 24054 | .unused, | ||
| 24055 | .unused, | ||
| 24056 | }, | ||
| 24057 | .dst_temps = .{.mem}, | ||
| 24058 | .each = .{ .once = &.{ | ||
| 24059 | .{ ._, .f_, .ld, .src0d, ._, ._, ._ }, | ||
| 24060 | .{ ._, .f_p, .st, .dst0t, ._, ._, ._ }, | ||
| 24061 | } }, | ||
| 24062 | }, .{ | ||
| 24063 | .required_features = .{ .x87, null, null, null }, | ||
| 24064 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, | ||
| 24065 | .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }}, | ||
| 24066 | .patterns = &.{ | ||
| 24067 | .{ .src = .{ .to_mem, .none } }, | ||
| 24068 | }, | ||
| 24069 | .extra_temps = .{ | ||
| 24070 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 24071 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, | ||
| 24072 | .unused, | ||
| 24073 | .unused, | ||
| 24074 | .unused, | ||
| 24075 | .unused, | ||
| 24076 | .unused, | ||
| 24077 | .unused, | ||
| 24078 | .unused, | ||
| 24079 | }, | ||
| 24080 | .dst_temps = .{.mem}, | ||
| 24081 | .each = .{ .once = &.{ | ||
| 24082 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | ||
| 24083 | .{ .@"0:", .f_, .ld, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._, ._ }, | ||
| 24084 | .{ ._, .f_p, .st, .memsia(.dst0t, .@"4", .tmp0, .add_unaligned_size), ._, ._, ._ }, | ||
| 24085 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | ||
| 24086 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 24087 | } }, | ||
| 24088 | }, .{ | ||
| 24089 | .required_features = .{ .sse, null, null, null }, | ||
| 24090 | .src_constraints = .{ .{ .scalar_float = .{ .of = .dword, .is = .dword } }, .any }, | ||
| 24091 | .dst_constraints = .{.{ .scalar_float = .{ .of = .xword, .is = .xword } }}, | ||
| 24092 | .patterns = &.{ | ||
| 24093 | .{ .src = .{ .{ .to_reg = .xmm0 }, .none } }, | ||
| 24094 | }, | ||
| 24095 | .call_frame = .{ .alignment = .@"16" }, | ||
| 24096 | .extra_temps = .{ | ||
| 24097 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__extendsftf2" } } }, | ||
| 24098 | .unused, | ||
| 24099 | .unused, | ||
| 24100 | .unused, | ||
| 24101 | .unused, | ||
| 24102 | .unused, | ||
| 24103 | .unused, | ||
| 24104 | .unused, | ||
| 24105 | .unused, | ||
| 24106 | }, | ||
| 24107 | .dst_temps = .{.{ .ref = .src0 }}, | ||
| 24108 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | ||
| 24109 | .each = .{ .once = &.{ | ||
| 24110 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, | ||
| 24111 | } }, | ||
| 24112 | }, .{ | ||
| 24113 | .required_features = .{ .avx, null, null, null }, | ||
| 24114 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, | ||
| 24115 | .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }}, | ||
| 24116 | .patterns = &.{ | ||
| 24117 | .{ .src = .{ .to_mem, .none } }, | ||
| 24118 | }, | ||
| 24119 | .call_frame = .{ .alignment = .@"16" }, | ||
| 24120 | .extra_temps = .{ | ||
| 24121 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 24122 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, | ||
| 24123 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__extendsftf2" } } }, | ||
| 24124 | .unused, | ||
| 24125 | .unused, | ||
| 24126 | .unused, | ||
| 24127 | .unused, | ||
| 24128 | .unused, | ||
| 24129 | .unused, | ||
| 24130 | }, | ||
| 24131 | .dst_temps = .{.mem}, | ||
| 24132 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | ||
| 24133 | .each = .{ .once = &.{ | ||
| 24134 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | ||
| 24135 | .{ .@"0:", .v_ss, .mov, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, | ||
| 24136 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | ||
| 24137 | .{ ._, .v_dqa, .mov, .memsia(.dst0x, .@"4", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, | ||
| 24138 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | ||
| 24139 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 24140 | } }, | ||
| 24141 | }, .{ | ||
| 24142 | .required_features = .{ .sse2, null, null, null }, | ||
| 24143 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, | ||
| 24144 | .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }}, | ||
| 24145 | .patterns = &.{ | ||
| 24146 | .{ .src = .{ .to_mem, .none } }, | ||
| 24147 | }, | ||
| 24148 | .call_frame = .{ .alignment = .@"16" }, | ||
| 24149 | .extra_temps = .{ | ||
| 24150 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 24151 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, | ||
| 24152 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__extendsftf2" } } }, | ||
| 24153 | .unused, | ||
| 24154 | .unused, | ||
| 24155 | .unused, | ||
| 24156 | .unused, | ||
| 24157 | .unused, | ||
| 24158 | .unused, | ||
| 24159 | }, | ||
| 24160 | .dst_temps = .{.mem}, | ||
| 24161 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | ||
| 24162 | .each = .{ .once = &.{ | ||
| 24163 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | ||
| 24164 | .{ .@"0:", ._ss, .mov, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, | ||
| 24165 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | ||
| 24166 | .{ ._, ._dqa, .mov, .memsia(.dst0x, .@"4", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, | ||
| 24167 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | ||
| 24168 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 24169 | } }, | ||
| 24170 | }, .{ | ||
| 24171 | .required_features = .{ .sse, null, null, null }, | ||
| 24172 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, | ||
| 24173 | .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }}, | ||
| 24174 | .patterns = &.{ | ||
| 24175 | .{ .src = .{ .to_mem, .none } }, | ||
| 24176 | }, | ||
| 24177 | .call_frame = .{ .alignment = .@"16" }, | ||
| 24178 | .extra_temps = .{ | ||
| 24179 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 24180 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, | ||
| 24181 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__extendsftf2" } } }, | ||
| 24182 | .unused, | ||
| 24183 | .unused, | ||
| 24184 | .unused, | ||
| 24185 | .unused, | ||
| 24186 | .unused, | ||
| 24187 | .unused, | ||
| 24188 | }, | ||
| 24189 | .dst_temps = .{.mem}, | ||
| 24190 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | ||
| 24191 | .each = .{ .once = &.{ | ||
| 24192 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | ||
| 24193 | .{ .@"0:", ._ss, .mov, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, | ||
| 24194 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | ||
| 24195 | .{ ._, ._ps, .mova, .memsia(.dst0x, .@"4", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, | ||
| 24196 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | ||
| 24197 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 24198 | } }, | ||
| 24199 | }, .{ | ||
| 24200 | .required_features = .{ .x87, null, null, null }, | ||
| 24201 | .src_constraints = .{ .{ .scalar_float = .{ .of = .qword, .is = .qword } }, .any }, | ||
| 24202 | .dst_constraints = .{.{ .scalar_float = .{ .of = .xword, .is = .tbyte } }}, | ||
| 24203 | .patterns = &.{ | ||
| 24204 | .{ .src = .{ .to_mem, .none } }, | ||
| 24205 | }, | ||
| 24206 | .extra_temps = .{ | ||
| 24207 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, | ||
| 24208 | .unused, | ||
| 24209 | .unused, | ||
| 24210 | .unused, | ||
| 24211 | .unused, | ||
| 24212 | .unused, | ||
| 24213 | .unused, | ||
| 24214 | .unused, | ||
| 24215 | .unused, | ||
| 24216 | }, | ||
| 24217 | .dst_temps = .{.mem}, | ||
| 24218 | .each = .{ .once = &.{ | ||
| 24219 | .{ ._, .f_, .ld, .src0q, ._, ._, ._ }, | ||
| 24220 | .{ ._, .f_p, .st, .dst0t, ._, ._, ._ }, | ||
| 24221 | } }, | ||
| 24222 | }, .{ | ||
| 24223 | .required_features = .{ .x87, null, null, null }, | ||
| 24224 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, | ||
| 24225 | .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }}, | ||
| 24226 | .patterns = &.{ | ||
| 24227 | .{ .src = .{ .to_mem, .none } }, | ||
| 24228 | }, | ||
| 24229 | .extra_temps = .{ | ||
| 24230 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 24231 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, | ||
| 24232 | .unused, | ||
| 24233 | .unused, | ||
| 24234 | .unused, | ||
| 24235 | .unused, | ||
| 24236 | .unused, | ||
| 24237 | .unused, | ||
| 24238 | .unused, | ||
| 24239 | }, | ||
| 24240 | .dst_temps = .{.mem}, | ||
| 24241 | .each = .{ .once = &.{ | ||
| 24242 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | ||
| 24243 | .{ .@"0:", .f_, .ld, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._, ._ }, | ||
| 24244 | .{ ._, .f_p, .st, .memsia(.dst0t, .@"2", .tmp0, .add_unaligned_size), ._, ._, ._ }, | ||
| 24245 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | ||
| 24246 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 24247 | } }, | ||
| 24248 | }, .{ | ||
| 24249 | .required_features = .{ .sse, null, null, null }, | ||
| 24250 | .src_constraints = .{ .{ .scalar_float = .{ .of = .qword, .is = .qword } }, .any }, | ||
| 24251 | .dst_constraints = .{.{ .scalar_float = .{ .of = .xword, .is = .xword } }}, | ||
| 24252 | .patterns = &.{ | ||
| 24253 | .{ .src = .{ .{ .to_reg = .xmm0 }, .none } }, | ||
| 24254 | }, | ||
| 24255 | .call_frame = .{ .alignment = .@"16" }, | ||
| 24256 | .extra_temps = .{ | ||
| 24257 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__extenddftf2" } } }, | ||
| 24258 | .unused, | ||
| 24259 | .unused, | ||
| 24260 | .unused, | ||
| 24261 | .unused, | ||
| 24262 | .unused, | ||
| 24263 | .unused, | ||
| 24264 | .unused, | ||
| 24265 | .unused, | ||
| 24266 | }, | ||
| 24267 | .dst_temps = .{.{ .ref = .src0 }}, | ||
| 24268 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | ||
| 24269 | .each = .{ .once = &.{ | ||
| 24270 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, | ||
| 24271 | } }, | ||
| 24272 | }, .{ | ||
| 24273 | .required_features = .{ .avx, null, null, null }, | ||
| 24274 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, | ||
| 24275 | .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }}, | ||
| 24276 | .patterns = &.{ | ||
| 24277 | .{ .src = .{ .to_mem, .none } }, | ||
| 24278 | }, | ||
| 24279 | .call_frame = .{ .alignment = .@"16" }, | ||
| 24280 | .extra_temps = .{ | ||
| 24281 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 24282 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, | ||
| 24283 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__extenddftf2" } } }, | ||
| 24284 | .unused, | ||
| 24285 | .unused, | ||
| 24286 | .unused, | ||
| 24287 | .unused, | ||
| 24288 | .unused, | ||
| 24289 | .unused, | ||
| 24290 | }, | ||
| 24291 | .dst_temps = .{.mem}, | ||
| 24292 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | ||
| 24293 | .each = .{ .once = &.{ | ||
| 24294 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | ||
| 24295 | .{ .@"0:", .v_sd, .mov, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, | ||
| 24296 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | ||
| 24297 | .{ ._, .v_dqa, .mov, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, | ||
| 24298 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | ||
| 24299 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 24300 | } }, | ||
| 24301 | }, .{ | ||
| 24302 | .required_features = .{ .sse2, null, null, null }, | ||
| 24303 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, | ||
| 24304 | .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }}, | ||
| 24305 | .patterns = &.{ | ||
| 24306 | .{ .src = .{ .to_mem, .none } }, | ||
| 24307 | }, | ||
| 24308 | .call_frame = .{ .alignment = .@"16" }, | ||
| 24309 | .extra_temps = .{ | ||
| 24310 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 24311 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, | ||
| 24312 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__extenddftf2" } } }, | ||
| 24313 | .unused, | ||
| 24314 | .unused, | ||
| 24315 | .unused, | ||
| 24316 | .unused, | ||
| 24317 | .unused, | ||
| 24318 | .unused, | ||
| 24319 | }, | ||
| 24320 | .dst_temps = .{.mem}, | ||
| 24321 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | ||
| 24322 | .each = .{ .once = &.{ | ||
| 24323 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | ||
| 24324 | .{ .@"0:", ._sd, .mov, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, | ||
| 24325 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | ||
| 24326 | .{ ._, ._dqa, .mov, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, | ||
| 24327 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | ||
| 24328 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 24329 | } }, | ||
| 24330 | }, .{ | ||
| 24331 | .required_features = .{ .sse, null, null, null }, | ||
| 24332 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, | ||
| 24333 | .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }}, | ||
| 24334 | .patterns = &.{ | ||
| 24335 | .{ .src = .{ .to_mem, .none } }, | ||
| 24336 | }, | ||
| 24337 | .call_frame = .{ .alignment = .@"16" }, | ||
| 24338 | .extra_temps = .{ | ||
| 24339 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 24340 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, | ||
| 24341 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__extenddftf2" } } }, | ||
| 24342 | .unused, | ||
| 24343 | .unused, | ||
| 24344 | .unused, | ||
| 24345 | .unused, | ||
| 24346 | .unused, | ||
| 24347 | .unused, | ||
| 24348 | }, | ||
| 24349 | .dst_temps = .{.mem}, | ||
| 24350 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | ||
| 24351 | .each = .{ .once = &.{ | ||
| 24352 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | ||
| 24353 | .{ .@"0:", ._ps, .xor, .tmp1x, .tmp1x, ._, ._ }, | ||
| 24354 | .{ ._, ._ps, .movl, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, | ||
| 24355 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | ||
| 24356 | .{ ._, ._ps, .mova, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, | ||
| 24357 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | ||
| 24358 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 24359 | } }, | ||
| 24360 | }, .{ | ||
| 24361 | .required_features = .{ .avx, null, null, null }, | ||
| 24362 | .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, | ||
| 24363 | .dst_constraints = .{.{ .scalar_float = .{ .of = .xword, .is = .xword } }}, | ||
| 24364 | .patterns = &.{ | ||
| 24365 | .{ .src = .{ .to_mem, .none } }, | ||
| 24366 | }, | ||
| 24367 | .call_frame = .{ .size = 16, .alignment = .@"16" }, | ||
| 24368 | .extra_temps = .{ | ||
| 24369 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, | ||
| 24370 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__extendxftf2" } } }, | ||
| 24371 | .unused, | ||
| 24372 | .unused, | ||
| 24373 | .unused, | ||
| 24374 | .unused, | ||
| 24375 | .unused, | ||
| 24376 | .unused, | ||
| 24377 | .unused, | ||
| 24378 | }, | ||
| 24379 | .dst_temps = .{.{ .reg = .xmm0 }}, | ||
| 24380 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | ||
| 24381 | .each = .{ .once = &.{ | ||
| 24382 | .{ ._, .v_dqa, .mov, .dst0x, .mem(.src0x), ._, ._ }, | ||
| 24383 | .{ ._, .v_dqa, .mov, .mem(.tmp0x), .dst0x, ._, ._ }, | ||
| 24384 | .{ ._, ._, .call, .tmp1d, ._, ._, ._ }, | ||
| 24385 | } }, | ||
| 24386 | }, .{ | ||
| 24387 | .required_features = .{ .sse2, null, null, null }, | ||
| 24388 | .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, | ||
| 24389 | .dst_constraints = .{.{ .scalar_float = .{ .of = .xword, .is = .xword } }}, | ||
| 24390 | .patterns = &.{ | ||
| 24391 | .{ .src = .{ .to_mem, .none } }, | ||
| 24392 | }, | ||
| 24393 | .call_frame = .{ .size = 16, .alignment = .@"16" }, | ||
| 24394 | .extra_temps = .{ | ||
| 24395 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, | ||
| 24396 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__extendxftf2" } } }, | ||
| 24397 | .unused, | ||
| 24398 | .unused, | ||
| 24399 | .unused, | ||
| 24400 | .unused, | ||
| 24401 | .unused, | ||
| 24402 | .unused, | ||
| 24403 | .unused, | ||
| 24404 | }, | ||
| 24405 | .dst_temps = .{.{ .reg = .xmm0 }}, | ||
| 24406 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | ||
| 24407 | .each = .{ .once = &.{ | ||
| 24408 | .{ ._, ._dqa, .mov, .dst0x, .mem(.src0x), ._, ._ }, | ||
| 24409 | .{ ._, ._dqa, .mov, .mem(.tmp0x), .dst0x, ._, ._ }, | ||
| 24410 | .{ ._, ._, .call, .tmp1d, ._, ._, ._ }, | ||
| 24411 | } }, | ||
| 24412 | }, .{ | ||
| 24413 | .required_features = .{ .sse, null, null, null }, | ||
| 24414 | .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, | ||
| 24415 | .dst_constraints = .{.{ .scalar_float = .{ .of = .xword, .is = .xword } }}, | ||
| 24416 | .patterns = &.{ | ||
| 24417 | .{ .src = .{ .to_mem, .none } }, | ||
| 24418 | }, | ||
| 24419 | .call_frame = .{ .size = 16, .alignment = .@"16" }, | ||
| 24420 | .extra_temps = .{ | ||
| 24421 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, | ||
| 24422 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__extendxftf2" } } }, | ||
| 24423 | .unused, | ||
| 24424 | .unused, | ||
| 24425 | .unused, | ||
| 24426 | .unused, | ||
| 24427 | .unused, | ||
| 24428 | .unused, | ||
| 24429 | .unused, | ||
| 24430 | }, | ||
| 24431 | .dst_temps = .{.{ .reg = .xmm0 }}, | ||
| 24432 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | ||
| 24433 | .each = .{ .once = &.{ | ||
| 24434 | .{ ._, ._ps, .mova, .dst0x, .mem(.src0x), ._, ._ }, | ||
| 24435 | .{ ._, ._ps, .mova, .mem(.tmp0x), .dst0x, ._, ._ }, | ||
| 24436 | .{ ._, ._, .call, .tmp1d, ._, ._, ._ }, | ||
| 24437 | } }, | ||
| 24438 | }, .{ | ||
| 24439 | .required_features = .{ .avx, null, null, null }, | ||
| 24440 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, | ||
| 24441 | .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }}, | ||
| 24442 | .patterns = &.{ | ||
| 24443 | .{ .src = .{ .to_mem, .none } }, | ||
| 24444 | }, | ||
| 24445 | .call_frame = .{ .size = 16, .alignment = .@"16" }, | ||
| 24446 | .extra_temps = .{ | ||
| 24447 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 24448 | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, | ||
| 24449 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, | ||
| 24450 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__extendxftf2" } } }, | ||
| 24451 | .unused, | ||
| 24452 | .unused, | ||
| 24453 | .unused, | ||
| 24454 | .unused, | ||
| 24455 | .unused, | ||
| 24456 | }, | ||
| 24457 | .dst_temps = .{.mem}, | ||
| 24458 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | ||
| 24459 | .each = .{ .once = &.{ | ||
| 24460 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | ||
| 24461 | .{ .@"0:", .v_dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, | ||
| 24462 | .{ ._, .v_dqa, .mov, .mem(.tmp2x), .tmp1x, ._, ._ }, | ||
| 24463 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, | ||
| 24464 | .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, | ||
| 24465 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | ||
| 24466 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 24467 | } }, | ||
| 24468 | }, .{ | ||
| 24469 | .required_features = .{ .sse2, null, null, null }, | ||
| 24470 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, | ||
| 24471 | .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }}, | ||
| 24472 | .patterns = &.{ | ||
| 24473 | .{ .src = .{ .to_mem, .none } }, | ||
| 24474 | }, | ||
| 24475 | .call_frame = .{ .size = 16, .alignment = .@"16" }, | ||
| 24476 | .extra_temps = .{ | ||
| 24477 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 24478 | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, | ||
| 24479 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, | ||
| 24480 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__extendxftf2" } } }, | ||
| 24481 | .unused, | ||
| 24482 | .unused, | ||
| 24483 | .unused, | ||
| 24484 | .unused, | ||
| 24485 | .unused, | ||
| 24486 | }, | ||
| 24487 | .dst_temps = .{.mem}, | ||
| 24488 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | ||
| 24489 | .each = .{ .once = &.{ | ||
| 24490 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | ||
| 24491 | .{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, | ||
| 24492 | .{ ._, ._dqa, .mov, .mem(.tmp2x), .tmp1x, ._, ._ }, | ||
| 24493 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, | ||
| 24494 | .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, | ||
| 24495 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | ||
| 24496 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 24497 | } }, | ||
| 24498 | }, .{ | ||
| 24499 | .required_features = .{ .sse, null, null, null }, | ||
| 24500 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, | ||
| 24501 | .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }}, | ||
| 24502 | .patterns = &.{ | ||
| 24503 | .{ .src = .{ .to_mem, .none } }, | ||
| 24504 | }, | ||
| 24505 | .call_frame = .{ .size = 16, .alignment = .@"16" }, | ||
| 24506 | .extra_temps = .{ | ||
| 24507 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 24508 | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, | ||
| 24509 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, | ||
| 24510 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__extendxftf2" } } }, | ||
| 24511 | .unused, | ||
| 24512 | .unused, | ||
| 24513 | .unused, | ||
| 24514 | .unused, | ||
| 24515 | .unused, | ||
| 24516 | }, | ||
| 24517 | .dst_temps = .{.mem}, | ||
| 24518 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | ||
| 24519 | .each = .{ .once = &.{ | ||
| 24520 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | ||
| 24521 | .{ .@"0:", ._ps, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, | ||
| 24522 | .{ ._, ._ps, .mova, .mem(.tmp2x), .tmp1x, ._, ._ }, | ||
| 24523 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, | ||
| 24524 | .{ ._, ._ps, .mova, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, | ||
| 24525 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | ||
| 24526 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 24527 | } }, | ||
| 24528 | } }) catch |err| switch (err) { | ||
| 24529 | error.SelectFailed => return cg.fail("failed to select {s} {} {} {}", .{ | ||
| 24530 | @tagName(air_tag), | ||
| 24531 | ty_op.ty.toType().fmt(pt), | ||
| 24532 | cg.typeOf(ty_op.operand).fmt(pt), | ||
| 24533 | ops[0].tracking(cg), | ||
| 24534 | }), | ||
| 24535 | else => |e| return e, | ||
| 24536 | }; | ||
| 24537 | try res[0].finish(inst, &.{ty_op.operand}, &ops, cg); | ||
| 24538 | }, | ||
| 24539 | .intcast => |air_tag| if (use_old) try cg.airIntCast(inst) else { | ||
| 24540 | const ty_op = air_datas[@intFromEnum(inst)].ty_op; | ||
| 24541 | const dst_ty = ty_op.ty.toType(); | ||
| 24542 | const src_ty = cg.typeOf(ty_op.operand); | ||
| 24543 | var ops = try cg.tempsFromOperands(inst, .{ty_op.operand}); | ||
| 24544 | var res: [1]Temp = undefined; | ||
| 24545 | cg.select(&res, &.{dst_ty}, &ops, if (dst_ty.scalarType(zcu).abiSize(zcu) <= src_ty.scalarType(zcu).abiSize(zcu)) comptime &.{ .{ | ||
| 24546 | .dst_constraints = .{.{ .int = .dword }}, | ||
| 24547 | .patterns = &.{ | ||
| 24548 | .{ .src = .{ .mut_mem, .none } }, | ||
| 24549 | .{ .src = .{ .to_mut_gpr, .none } }, | ||
| 24550 | }, | ||
| 24551 | .dst_temps = .{.{ .ref = .src0 }}, | ||
| 24552 | .each = .{ .once = &.{} }, | ||
| 24553 | }, .{ | ||
| 24554 | .required_features = .{ .@"64bit", null, null, null }, | ||
| 24555 | .dst_constraints = .{.{ .int = .qword }}, | ||
| 24556 | .patterns = &.{ | ||
| 24557 | .{ .src = .{ .mut_mem, .none } }, | ||
| 24558 | .{ .src = .{ .to_mut_gpr, .none } }, | ||
| 24559 | }, | ||
| 24560 | .dst_temps = .{.{ .ref = .src0 }}, | ||
| 24561 | .each = .{ .once = &.{} }, | ||
| 24562 | }, .{ | ||
| 24563 | .dst_constraints = .{.{ .int = .byte }}, | ||
| 24564 | .patterns = &.{ | ||
| 24565 | .{ .src = .{ .to_mem, .none } }, | ||
| 24566 | }, | ||
| 24567 | .dst_temps = .{.{ .rc = .general_purpose }}, | ||
| 24568 | .each = .{ .once = &.{ | ||
| 24569 | .{ ._, ._, .mov, .dst0b, .mem(.src0b), ._, ._ }, | ||
| 24570 | } }, | ||
| 24571 | }, .{ | ||
| 24572 | .dst_constraints = .{.{ .int = .word }}, | ||
| 24573 | .patterns = &.{ | ||
| 24574 | .{ .src = .{ .to_mem, .none } }, | ||
| 24575 | }, | ||
| 24576 | .dst_temps = .{.{ .rc = .general_purpose }}, | ||
| 24577 | .each = .{ .once = &.{ | ||
| 24578 | .{ ._, ._, .mov, .dst0w, .mem(.src0w), ._, ._ }, | ||
| 24579 | } }, | ||
| 24580 | }, .{ | ||
| 24581 | .dst_constraints = .{.{ .int = .dword }}, | ||
| 24582 | .patterns = &.{ | ||
| 24583 | .{ .src = .{ .to_mem, .none } }, | ||
| 24584 | }, | ||
| 24585 | .dst_temps = .{.{ .rc = .general_purpose }}, | ||
| 24586 | .each = .{ .once = &.{ | ||
| 24587 | .{ ._, ._, .mov, .dst0d, .mem(.src0d), ._, ._ }, | ||
| 24588 | } }, | ||
| 24589 | }, .{ | ||
| 24590 | .required_features = .{ .@"64bit", null, null, null }, | ||
| 24591 | .dst_constraints = .{.{ .int = .qword }}, | ||
| 24592 | .patterns = &.{ | ||
| 24593 | .{ .src = .{ .to_mem, .none } }, | ||
| 24594 | }, | ||
| 24595 | .dst_temps = .{.{ .rc = .general_purpose }}, | ||
| 24596 | .each = .{ .once = &.{ | ||
| 24597 | .{ ._, ._, .mov, .dst0q, .mem(.src0q), ._, ._ }, | ||
| 24598 | } }, | ||
| 24599 | }, .{ | ||
| 24600 | .required_features = .{ .@"64bit", null, null, null }, | ||
| 24601 | .dst_constraints = .{.{ .remainder_int = .{ .of = .qword, .is = .qword } }}, | ||
| 24602 | .patterns = &.{ | ||
| 24603 | .{ .src = .{ .to_mem, .none } }, | ||
| 24604 | }, | ||
| 24605 | .extra_temps = .{ | ||
| 24606 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, | ||
| 24607 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | ||
| 24608 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, | ||
| 24609 | .unused, | ||
| 24610 | .unused, | ||
| 24611 | .unused, | ||
| 24612 | .unused, | ||
| 24613 | .unused, | ||
| 24614 | .unused, | ||
| 24615 | }, | ||
| 24616 | .dst_temps = .{.mem}, | ||
| 24617 | .each = .{ .once = &.{ | ||
| 24618 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, | ||
| 24619 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, | ||
| 24620 | .{ ._, ._, .mov, .tmp2d, .sa(.dst0, .add_size_div_8), ._, ._ }, | ||
| 24621 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, | ||
| 24622 | } }, | ||
| 24623 | }, .{ | ||
| 24624 | .required_features = .{ .sse, null, null, null }, | ||
| 24625 | .src_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .byte } }, .any }, | ||
| 24626 | .dst_constraints = .{.{ .scalar_int = .{ .of = .xword, .is = .byte } }}, | ||
| 24627 | .patterns = &.{ | ||
| 24628 | .{ .src = .{ .mut_mem, .none } }, | ||
| 24629 | .{ .src = .{ .to_mut_sse, .none } }, | ||
| 24630 | }, | ||
| 24631 | .dst_temps = .{.{ .ref = .src0 }}, | ||
| 24632 | .each = .{ .once = &.{} }, | ||
| 24633 | }, .{ | ||
| 24634 | .required_features = .{ .avx, null, null, null }, | ||
| 24635 | .src_constraints = .{ .{ .scalar_int = .{ .of = .yword, .is = .byte } }, .any }, | ||
| 24636 | .dst_constraints = .{.{ .scalar_int = .{ .of = .yword, .is = .byte } }}, | ||
| 24637 | .patterns = &.{ | ||
| 24638 | .{ .src = .{ .mut_mem, .none } }, | ||
| 24639 | .{ .src = .{ .to_mut_sse, .none } }, | ||
| 24640 | }, | ||
| 24641 | .dst_temps = .{.{ .ref = .src0 }}, | ||
| 24642 | .each = .{ .once = &.{} }, | ||
| 24643 | }, .{ | ||
| 24644 | .required_features = .{ .avx, null, null, null }, | ||
| 24645 | .src_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .word } }, .any }, | ||
| 24646 | .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .qword, .is = .byte } }}, | ||
| 24647 | .patterns = &.{ | ||
| 24648 | .{ .src = .{ .to_sse, .none } }, | ||
| 24649 | }, | ||
| 24650 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, | ||
| 24651 | .each = .{ .once = &.{ | ||
| 24652 | .{ ._, .vp_b, .ackssw, .dst0x, .src0x, .dst0x, ._ }, | ||
| 24653 | } }, | ||
| 24654 | }, .{ | ||
| 24655 | .required_features = .{ .avx, null, null, null }, | ||
| 24656 | .src_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .word } }, .any }, | ||
| 24657 | .dst_constraints = .{.{ .scalar_int = .{ .of = .qword, .is = .byte } }}, | ||
| 24658 | .patterns = &.{ | ||
| 24659 | .{ .src = .{ .to_sse, .none } }, | ||
| 24660 | }, | ||
| 24661 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, | ||
| 24662 | .each = .{ .once = &.{ | ||
| 24663 | .{ ._, .vp_b, .ackusw, .dst0x, .src0x, .dst0x, ._ }, | ||
| 24664 | } }, | ||
| 24665 | }, .{ | ||
| 24666 | .required_features = .{ .sse2, null, null, null }, | ||
| 24667 | .src_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .word } }, .any }, | ||
| 24668 | .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .qword, .is = .byte } }}, | ||
| 24669 | .patterns = &.{ | ||
| 24670 | .{ .src = .{ .to_mut_sse, .none } }, | ||
| 24671 | }, | ||
| 24672 | .dst_temps = .{.{ .ref = .src0 }}, | ||
| 24673 | .each = .{ .once = &.{ | ||
| 24674 | .{ ._, .p_b, .ackssw, .dst0x, .dst0x, ._, ._ }, | ||
| 24675 | } }, | ||
| 24676 | }, .{ | ||
| 24677 | .required_features = .{ .sse2, null, null, null }, | ||
| 24678 | .src_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .word } }, .any }, | ||
| 24679 | .dst_constraints = .{.{ .scalar_int = .{ .of = .qword, .is = .byte } }}, | ||
| 24680 | .patterns = &.{ | ||
| 24681 | .{ .src = .{ .to_mut_sse, .none } }, | ||
| 24682 | }, | ||
| 24683 | .dst_temps = .{.{ .ref = .src0 }}, | ||
| 24684 | .each = .{ .once = &.{ | ||
| 24685 | .{ ._, .p_b, .ackusw, .dst0x, .dst0x, ._, ._ }, | ||
| 24686 | } }, | ||
| 24687 | }, .{ | ||
| 24688 | .required_features = .{ .avx2, null, null, null }, | ||
| 24689 | .src_constraints = .{ .{ .scalar_int = .{ .of = .yword, .is = .word } }, .any }, | ||
| 24690 | .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .xword, .is = .byte } }}, | ||
| 24691 | .patterns = &.{ | ||
| 24692 | .{ .src = .{ .to_sse, .none } }, | ||
| 24693 | }, | ||
| 24694 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, | ||
| 24695 | .each = .{ .once = &.{ | ||
| 24696 | .{ ._, .vp_b, .ackssw, .dst0y, .src0y, .dst0y, ._ }, | ||
| 24697 | } }, | ||
| 24698 | }, .{ | ||
| 24699 | .required_features = .{ .avx2, null, null, null }, | ||
| 24700 | .src_constraints = .{ .{ .scalar_int = .{ .of = .yword, .is = .word } }, .any }, | ||
| 24701 | .dst_constraints = .{.{ .scalar_int = .{ .of = .xword, .is = .byte } }}, | ||
| 24702 | .patterns = &.{ | ||
| 24703 | .{ .src = .{ .to_sse, .none } }, | ||
| 24704 | }, | ||
| 24705 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, | ||
| 24706 | .each = .{ .once = &.{ | ||
| 24707 | .{ ._, .vp_b, .ackusw, .dst0y, .src0y, .dst0y, ._ }, | ||
| 24708 | } }, | ||
| 24709 | }, .{ | ||
| 24710 | .required_features = .{ .slow_incdec, null, null, null }, | ||
| 24711 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .word } }, .any }, | ||
| 24712 | .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }}, | ||
| 24713 | .patterns = &.{ | ||
| 24714 | .{ .src = .{ .to_mem, .none } }, | ||
| 24715 | }, | ||
| 24716 | .extra_temps = .{ | ||
| 24717 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 24718 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | ||
| 24719 | .unused, | ||
| 24720 | .unused, | ||
| 24721 | .unused, | ||
| 24722 | .unused, | ||
| 24723 | .unused, | ||
| 24724 | .unused, | ||
| 24725 | .unused, | ||
| 24726 | }, | ||
| 24727 | .dst_temps = .{.mem}, | ||
| 24728 | .each = .{ .once = &.{ | ||
| 24729 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | ||
| 24730 | .{ .@"0:", ._, .movzx, .tmp1d, .memsia(.src0w, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, | ||
| 24731 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, | ||
| 24732 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, | ||
| 24733 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 24734 | } }, | ||
| 24735 | }, .{ | ||
| 24736 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .word } }, .any }, | ||
| 24737 | .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }}, | ||
| 24738 | .patterns = &.{ | ||
| 24739 | .{ .src = .{ .to_mem, .none } }, | ||
| 24740 | }, | ||
| 24741 | .extra_temps = .{ | ||
| 24742 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 24743 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | ||
| 24744 | .unused, | ||
| 24745 | .unused, | ||
| 24746 | .unused, | ||
| 24747 | .unused, | ||
| 24748 | .unused, | ||
| 24749 | .unused, | ||
| 24750 | .unused, | ||
| 24751 | }, | ||
| 24752 | .dst_temps = .{.mem}, | ||
| 24753 | .each = .{ .once = &.{ | ||
| 24754 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | ||
| 24755 | .{ .@"0:", ._, .movzx, .tmp1d, .memsia(.src0w, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, | ||
| 24756 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, | ||
| 24757 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, | ||
| 24758 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, | ||
| 24759 | } }, | ||
| 24760 | }, .{ | ||
| 24761 | .required_features = .{ .avx, null, null, null }, | ||
| 24762 | .src_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .dword } }, .any }, | ||
| 24763 | .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .dword, .is = .byte } }}, | ||
| 24764 | .patterns = &.{ | ||
| 24765 | .{ .src = .{ .to_sse, .none } }, | ||
| 24766 | }, | ||
| 24767 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, | ||
| 24768 | .each = .{ .once = &.{ | ||
| 24769 | .{ ._, .vp_w, .ackssd, .dst0x, .src0x, .dst0x, ._ }, | ||
| 24770 | .{ ._, .vp_b, .ackssw, .dst0x, .dst0x, .dst0x, ._ }, | ||
| 24771 | } }, | ||
| 24772 | }, .{ | ||
| 24773 | .required_features = .{ .avx, null, null, null }, | ||
| 24774 | .src_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .dword } }, .any }, | ||
| 24775 | .dst_constraints = .{.{ .scalar_int = .{ .of = .dword, .is = .byte } }}, | ||
| 24776 | .patterns = &.{ | ||
| 24777 | .{ .src = .{ .to_sse, .none } }, | ||
| 24778 | }, | ||
| 24779 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, | ||
| 24780 | .each = .{ .once = &.{ | ||
| 24781 | .{ ._, .vp_w, .ackusd, .dst0x, .src0x, .dst0x, ._ }, | ||
| 24782 | .{ ._, .vp_b, .ackusw, .dst0x, .dst0x, .dst0x, ._ }, | ||
| 24783 | } }, | ||
| 24784 | }, .{ | ||
| 24785 | .required_features = .{ .sse2, null, null, null }, | ||
| 24786 | .src_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .dword } }, .any }, | ||
| 24787 | .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .dword, .is = .byte } }}, | ||
| 24788 | .patterns = &.{ | ||
| 24789 | .{ .src = .{ .to_mut_sse, .none } }, | ||
| 24790 | }, | ||
| 24791 | .dst_temps = .{.{ .ref = .src0 }}, | ||
| 24792 | .each = .{ .once = &.{ | ||
| 24793 | .{ ._, .p_w, .ackssd, .dst0x, .dst0x, ._, ._ }, | ||
| 24794 | .{ ._, .p_b, .ackssw, .dst0x, .dst0x, ._, ._ }, | ||
| 24795 | } }, | ||
| 24796 | }, .{ | ||
| 24797 | .required_features = .{ .sse4_1, null, null, null }, | ||
| 24798 | .src_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .dword } }, .any }, | ||
| 24799 | .dst_constraints = .{.{ .scalar_int = .{ .of = .dword, .is = .byte } }}, | ||
| 24800 | .patterns = &.{ | ||
| 24801 | .{ .src = .{ .to_mut_sse, .none } }, | ||
| 24802 | }, | ||
| 24803 | .dst_temps = .{.{ .ref = .src0 }}, | ||
| 24804 | .each = .{ .once = &.{ | ||
| 24805 | .{ ._, .p_w, .ackusd, .dst0x, .dst0x, ._, ._ }, | ||
| 24806 | .{ ._, .p_b, .ackusw, .dst0x, .dst0x, ._, ._ }, | ||
| 24807 | } }, | ||
| 24808 | }, .{ | ||
| 24809 | .required_features = .{ .avx2, null, null, null }, | ||
| 24810 | .src_constraints = .{ .{ .scalar_int = .{ .of = .yword, .is = .dword } }, .any }, | ||
| 24811 | .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .qword, .is = .byte } }}, | ||
| 24812 | .patterns = &.{ | ||
| 24813 | .{ .src = .{ .to_sse, .none } }, | ||
| 24814 | }, | ||
| 24815 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, | ||
| 24816 | .each = .{ .once = &.{ | ||
| 24817 | .{ ._, .vp_w, .ackssd, .dst0y, .src0y, .dst0y, ._ }, | ||
| 24818 | .{ ._, .vp_b, .ackssw, .dst0y, .dst0y, .dst0y, ._ }, | ||
| 24819 | } }, | ||
| 24820 | }, .{ | ||
| 24821 | .required_features = .{ .avx2, null, null, null }, | ||
| 24822 | .src_constraints = .{ .{ .scalar_int = .{ .of = .yword, .is = .dword } }, .any }, | ||
| 24823 | .dst_constraints = .{.{ .scalar_int = .{ .of = .qword, .is = .byte } }}, | ||
| 24824 | .patterns = &.{ | ||
| 24825 | .{ .src = .{ .to_sse, .none } }, | ||
| 24826 | }, | ||
| 24827 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, | ||
| 24828 | .each = .{ .once = &.{ | ||
| 24829 | .{ ._, .vp_w, .ackusd, .dst0y, .src0y, .dst0y, ._ }, | ||
| 24830 | .{ ._, .vp_b, .ackusw, .dst0y, .dst0y, .dst0y, ._ }, | ||
| 24831 | } }, | ||
| 24832 | }, .{ | ||
| 24833 | .required_features = .{ .slow_incdec, null, null, null }, | ||
| 24834 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .dword, .is = .dword } }, .any }, | ||
| 24835 | .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }}, | ||
| 24836 | .patterns = &.{ | ||
| 24837 | .{ .src = .{ .to_mem, .none } }, | ||
| 24838 | }, | ||
| 24839 | .extra_temps = .{ | ||
| 24840 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 24841 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | ||
| 24842 | .unused, | ||
| 24843 | .unused, | ||
| 24844 | .unused, | ||
| 24845 | .unused, | ||
| 24846 | .unused, | ||
| 24847 | .unused, | ||
| 24848 | .unused, | ||
| 24849 | }, | ||
| 24850 | .dst_temps = .{.mem}, | ||
| 24851 | .each = .{ .once = &.{ | ||
| 24852 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | ||
| 24853 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, | ||
| 24854 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, | ||
| 24855 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, | ||
| 24856 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 24857 | } }, | ||
| 24858 | }, .{ | ||
| 24859 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .dword, .is = .dword } }, .any }, | ||
| 24860 | .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }}, | ||
| 24861 | .patterns = &.{ | ||
| 24862 | .{ .src = .{ .to_mem, .none } }, | ||
| 24863 | }, | ||
| 24864 | .extra_temps = .{ | ||
| 24865 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 24866 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | ||
| 24867 | .unused, | ||
| 24868 | .unused, | ||
| 24869 | .unused, | ||
| 24870 | .unused, | ||
| 24871 | .unused, | ||
| 24872 | .unused, | ||
| 24873 | .unused, | ||
| 24874 | }, | ||
| 24875 | .dst_temps = .{.mem}, | ||
| 24876 | .each = .{ .once = &.{ | ||
| 24877 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | ||
| 24878 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, | ||
| 24879 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, | ||
| 24880 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, | ||
| 24881 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, | ||
| 24882 | } }, | ||
| 24883 | }, .{ | ||
| 24884 | .required_features = .{ .slow_incdec, null, null, null }, | ||
| 24885 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .qword, .is = .qword } }, .any }, | ||
| 24886 | .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }}, | ||
| 24887 | .patterns = &.{ | ||
| 24888 | .{ .src = .{ .to_mem, .none } }, | ||
| 24889 | }, | ||
| 24890 | .extra_temps = .{ | ||
| 24891 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 24892 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | ||
| 24893 | .unused, | ||
| 24894 | .unused, | ||
| 24895 | .unused, | ||
| 24896 | .unused, | ||
| 24897 | .unused, | ||
| 24898 | .unused, | ||
| 24899 | .unused, | ||
| 24900 | }, | ||
| 24901 | .dst_temps = .{.mem}, | ||
| 24902 | .each = .{ .once = &.{ | ||
| 24903 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | ||
| 24904 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, | ||
| 24905 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, | ||
| 24906 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, | ||
| 24907 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 24908 | } }, | ||
| 24909 | }, .{ | ||
| 24910 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .qword, .is = .qword } }, .any }, | ||
| 24911 | .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }}, | ||
| 24912 | .patterns = &.{ | ||
| 24913 | .{ .src = .{ .to_mem, .none } }, | ||
| 24914 | }, | ||
| 24915 | .extra_temps = .{ | ||
| 24916 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 24917 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | ||
| 24918 | .unused, | ||
| 24919 | .unused, | ||
| 24920 | .unused, | ||
| 24921 | .unused, | ||
| 24922 | .unused, | ||
| 24923 | .unused, | ||
| 24924 | .unused, | ||
| 24925 | }, | ||
| 24926 | .dst_temps = .{.mem}, | ||
| 24927 | .each = .{ .once = &.{ | ||
| 24928 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | ||
| 24929 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, | ||
| 24930 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, | ||
| 24931 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, | ||
| 24932 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, | ||
| 24933 | } }, | ||
| 24934 | }, .{ | ||
| 24935 | .required_features = .{ .slow_incdec, null, null, null }, | ||
| 24936 | .src_constraints = .{ .any_scalar_int, .any }, | ||
| 24937 | .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }}, | ||
| 24938 | .patterns = &.{ | ||
| 24939 | .{ .src = .{ .to_mem, .none } }, | ||
| 24940 | }, | ||
| 24941 | .extra_temps = .{ | ||
| 24942 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 24943 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | ||
| 24944 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | ||
| 24945 | .unused, | ||
| 24946 | .unused, | ||
| 24947 | .unused, | ||
| 24948 | .unused, | ||
| 24949 | .unused, | ||
| 24950 | .unused, | ||
| 24951 | }, | ||
| 24952 | .dst_temps = .{.mem}, | ||
| 24953 | .each = .{ .once = &.{ | ||
| 24954 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | ||
| 24955 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | ||
| 24956 | .{ .@"0:", ._, .mov, .tmp2d, .memi(.src0d, .tmp1), ._, ._ }, | ||
| 24957 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp2b, ._, ._ }, | ||
| 24958 | .{ ._, ._, .lea, .tmp1d, .leaa(.tmp1, .add_src0_elem_size), ._, ._ }, | ||
| 24959 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, | ||
| 24960 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 24961 | } }, | ||
| 24962 | }, .{ | ||
| 24963 | .src_constraints = .{ .any_scalar_int, .any }, | ||
| 24964 | .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }}, | ||
| 24965 | .patterns = &.{ | ||
| 24966 | .{ .src = .{ .to_mem, .none } }, | ||
| 24967 | }, | ||
| 24968 | .extra_temps = .{ | ||
| 24969 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 24970 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | ||
| 24971 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | ||
| 24972 | .unused, | ||
| 24973 | .unused, | ||
| 24974 | .unused, | ||
| 24975 | .unused, | ||
| 24976 | .unused, | ||
| 24977 | .unused, | ||
| 24978 | }, | ||
| 24979 | .dst_temps = .{.mem}, | ||
| 24980 | .each = .{ .once = &.{ | ||
| 24981 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | ||
| 24982 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | ||
| 24983 | .{ .@"0:", ._, .mov, .tmp2d, .memi(.src0d, .tmp1), ._, ._ }, | ||
| 24984 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp2b, ._, ._ }, | ||
| 24985 | .{ ._, ._, .lea, .tmp1d, .leaa(.tmp1, .add_src0_elem_size), ._, ._ }, | ||
| 24986 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, | ||
| 24987 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, | ||
| 24988 | } }, | ||
| 24989 | }, .{ | ||
| 24990 | .required_features = .{ .sse, null, null, null }, | ||
| 24991 | .src_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .word } }, .any }, | ||
| 24992 | .dst_constraints = .{.{ .scalar_int = .{ .of = .xword, .is = .word } }}, | ||
| 24993 | .patterns = &.{ | ||
| 24994 | .{ .src = .{ .mut_mem, .none } }, | ||
| 24995 | .{ .src = .{ .to_mut_sse, .none } }, | ||
| 24996 | }, | ||
| 24997 | .dst_temps = .{.{ .ref = .src0 }}, | ||
| 24998 | .each = .{ .once = &.{} }, | ||
| 24999 | }, .{ | ||
| 25000 | .required_features = .{ .avx, null, null, null }, | ||
| 25001 | .src_constraints = .{ .{ .scalar_int = .{ .of = .yword, .is = .word } }, .any }, | ||
| 25002 | .dst_constraints = .{.{ .scalar_int = .{ .of = .yword, .is = .word } }}, | ||
| 25003 | .patterns = &.{ | ||
| 25004 | .{ .src = .{ .mut_mem, .none } }, | ||
| 25005 | .{ .src = .{ .to_mut_sse, .none } }, | ||
| 25006 | }, | ||
| 25007 | .dst_temps = .{.{ .ref = .src0 }}, | ||
| 25008 | .each = .{ .once = &.{} }, | ||
| 25009 | }, .{ | ||
| 25010 | .required_features = .{ .avx, null, null, null }, | ||
| 25011 | .src_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .dword } }, .any }, | ||
| 25012 | .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .qword, .is = .word } }}, | ||
| 25013 | .patterns = &.{ | ||
| 25014 | .{ .src = .{ .to_sse, .none } }, | ||
| 25015 | }, | ||
| 25016 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, | ||
| 25017 | .each = .{ .once = &.{ | ||
| 25018 | .{ ._, .vp_w, .ackssd, .dst0x, .src0x, .dst0x, ._ }, | ||
| 25019 | } }, | ||
| 25020 | }, .{ | ||
| 25021 | .required_features = .{ .avx, null, null, null }, | ||
| 25022 | .src_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .dword } }, .any }, | ||
| 25023 | .dst_constraints = .{.{ .scalar_int = .{ .of = .qword, .is = .word } }}, | ||
| 25024 | .patterns = &.{ | ||
| 25025 | .{ .src = .{ .to_sse, .none } }, | ||
| 25026 | }, | ||
| 25027 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, | ||
| 25028 | .each = .{ .once = &.{ | ||
| 25029 | .{ ._, .vp_w, .ackusd, .dst0x, .src0x, .dst0x, ._ }, | ||
| 25030 | } }, | ||
| 25031 | }, .{ | ||
| 25032 | .required_features = .{ .sse2, null, null, null }, | ||
| 25033 | .src_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .dword } }, .any }, | ||
| 25034 | .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .qword, .is = .word } }}, | ||
| 25035 | .patterns = &.{ | ||
| 25036 | .{ .src = .{ .to_mut_sse, .none } }, | ||
| 25037 | }, | ||
| 25038 | .dst_temps = .{.{ .ref = .src0 }}, | ||
| 25039 | .each = .{ .once = &.{ | ||
| 25040 | .{ ._, .p_w, .ackssd, .dst0x, .dst0x, ._, ._ }, | ||
| 25041 | } }, | ||
| 25042 | }, .{ | ||
| 25043 | .required_features = .{ .sse4_1, null, null, null }, | ||
| 25044 | .src_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .dword } }, .any }, | ||
| 25045 | .dst_constraints = .{.{ .scalar_int = .{ .of = .qword, .is = .word } }}, | ||
| 25046 | .patterns = &.{ | ||
| 25047 | .{ .src = .{ .to_mut_sse, .none } }, | ||
| 25048 | }, | ||
| 25049 | .dst_temps = .{.{ .ref = .src0 }}, | ||
| 25050 | .each = .{ .once = &.{ | ||
| 25051 | .{ ._, .p_w, .ackusd, .dst0x, .dst0x, ._, ._ }, | ||
| 25052 | } }, | ||
| 25053 | }, .{ | ||
| 25054 | .required_features = .{ .avx2, null, null, null }, | ||
| 25055 | .src_constraints = .{ .{ .scalar_int = .{ .of = .yword, .is = .dword } }, .any }, | ||
| 25056 | .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .xword, .is = .word } }}, | ||
| 25057 | .patterns = &.{ | ||
| 25058 | .{ .src = .{ .to_sse, .none } }, | ||
| 25059 | }, | ||
| 25060 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, | ||
| 25061 | .each = .{ .once = &.{ | ||
| 25062 | .{ ._, .vp_w, .ackssd, .dst0y, .src0y, .dst0y, ._ }, | ||
| 25063 | } }, | ||
| 25064 | }, .{ | ||
| 25065 | .required_features = .{ .avx2, null, null, null }, | ||
| 25066 | .src_constraints = .{ .{ .scalar_int = .{ .of = .yword, .is = .dword } }, .any }, | ||
| 25067 | .dst_constraints = .{.{ .scalar_int = .{ .of = .xword, .is = .word } }}, | ||
| 25068 | .patterns = &.{ | ||
| 25069 | .{ .src = .{ .to_sse, .none } }, | ||
| 25070 | }, | ||
| 25071 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, | ||
| 25072 | .each = .{ .once = &.{ | ||
| 25073 | .{ ._, .vp_w, .ackusd, .dst0y, .src0y, .dst0y, ._ }, | ||
| 25074 | } }, | ||
| 25075 | }, .{ | ||
| 25076 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .dword, .is = .dword } }, .any }, | ||
| 25077 | .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .word, .is = .word } }}, | ||
| 25078 | .patterns = &.{ | ||
| 25079 | .{ .src = .{ .to_mem, .none } }, | ||
| 25080 | }, | ||
| 25081 | .extra_temps = .{ | ||
| 25082 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 25083 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, | ||
| 25084 | .unused, | ||
| 25085 | .unused, | ||
| 25086 | .unused, | ||
| 25087 | .unused, | ||
| 25088 | .unused, | ||
| 25089 | .unused, | ||
| 25090 | .unused, | ||
| 25091 | }, | ||
| 25092 | .dst_temps = .{.mem}, | ||
| 25093 | .each = .{ .once = &.{ | ||
| 25094 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | ||
| 25095 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, | ||
| 25096 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, | ||
| 25097 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | ||
| 25098 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 25099 | } }, | ||
| 25100 | }, .{ | ||
| 25101 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .qword, .is = .qword } }, .any }, | ||
| 25102 | .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .word, .is = .word } }}, | ||
| 25103 | .patterns = &.{ | ||
| 25104 | .{ .src = .{ .to_mem, .none } }, | ||
| 25105 | }, | ||
| 25106 | .extra_temps = .{ | ||
| 25107 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 25108 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, | ||
| 25109 | .unused, | ||
| 25110 | .unused, | ||
| 25111 | .unused, | ||
| 25112 | .unused, | ||
| 25113 | .unused, | ||
| 25114 | .unused, | ||
| 25115 | .unused, | ||
| 25116 | }, | ||
| 25117 | .dst_temps = .{.mem}, | ||
| 25118 | .each = .{ .once = &.{ | ||
| 25119 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | ||
| 25120 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, | ||
| 25121 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, | ||
| 25122 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | ||
| 25123 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 25124 | } }, | ||
| 25125 | }, .{ | ||
| 25126 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .xword } }, .any }, | ||
| 25127 | .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .word, .is = .word } }}, | ||
| 25128 | .patterns = &.{ | ||
| 25129 | .{ .src = .{ .to_mem, .none } }, | ||
| 25130 | }, | ||
| 25131 | .extra_temps = .{ | ||
| 25132 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 25133 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, | ||
| 25134 | .unused, | ||
| 25135 | .unused, | ||
| 25136 | .unused, | ||
| 25137 | .unused, | ||
| 25138 | .unused, | ||
| 25139 | .unused, | ||
| 25140 | .unused, | ||
| 25141 | }, | ||
| 25142 | .dst_temps = .{.mem}, | ||
| 25143 | .each = .{ .once = &.{ | ||
| 25144 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | ||
| 25145 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, | ||
| 25146 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, | ||
| 25147 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | ||
| 25148 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 25149 | } }, | ||
| 25150 | }, .{ | ||
| 25151 | .src_constraints = .{ .any_scalar_int, .any }, | ||
| 25152 | .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .word, .is = .word } }}, | ||
| 25153 | .patterns = &.{ | ||
| 25154 | .{ .src = .{ .to_mem, .none } }, | ||
| 25155 | }, | ||
| 25156 | .extra_temps = .{ | ||
| 25157 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 25158 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | ||
| 25159 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, | ||
| 25160 | .unused, | ||
| 25161 | .unused, | ||
| 25162 | .unused, | ||
| 25163 | .unused, | ||
| 25164 | .unused, | ||
| 25165 | .unused, | ||
| 25166 | }, | ||
| 25167 | .dst_temps = .{.mem}, | ||
| 25168 | .each = .{ .once = &.{ | ||
| 25169 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | ||
| 25170 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | ||
| 25171 | .{ .@"0:", ._, .mov, .tmp2d, .memi(.src0d, .tmp1), ._, ._ }, | ||
| 25172 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp2w, ._, ._ }, | ||
| 25173 | .{ ._, ._, .lea, .tmp1d, .leaa(.tmp1, .add_src0_elem_size), ._, ._ }, | ||
| 25174 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | ||
| 25175 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 25176 | } }, | ||
| 25177 | }, .{ | ||
| 25178 | .required_features = .{ .sse, null, null, null }, | ||
| 25179 | .src_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .dword } }, .any }, | ||
| 25180 | .dst_constraints = .{.{ .scalar_int = .{ .of = .xword, .is = .dword } }}, | ||
| 25181 | .patterns = &.{ | ||
| 25182 | .{ .src = .{ .mut_mem, .none } }, | ||
| 25183 | .{ .src = .{ .to_mut_sse, .none } }, | ||
| 25184 | }, | ||
| 25185 | .dst_temps = .{.{ .ref = .src0 }}, | ||
| 25186 | .each = .{ .once = &.{} }, | ||
| 25187 | }, .{ | ||
| 25188 | .required_features = .{ .avx, null, null, null }, | ||
| 25189 | .src_constraints = .{ .{ .scalar_int = .{ .of = .yword, .is = .dword } }, .any }, | ||
| 25190 | .dst_constraints = .{.{ .scalar_int = .{ .of = .yword, .is = .dword } }}, | ||
| 25191 | .patterns = &.{ | ||
| 25192 | .{ .src = .{ .mut_mem, .none } }, | ||
| 25193 | .{ .src = .{ .to_mut_sse, .none } }, | ||
| 25194 | }, | ||
| 25195 | .dst_temps = .{.{ .ref = .src0 }}, | ||
| 25196 | .each = .{ .once = &.{} }, | ||
| 25197 | }, .{ | ||
| 25198 | .required_features = .{ .avx, null, null, null }, | ||
| 25199 | .src_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .qword } }, .any }, | ||
| 25200 | .dst_constraints = .{.{ .scalar_int = .{ .of = .qword, .is = .dword } }}, | ||
| 25201 | .patterns = &.{ | ||
| 25202 | .{ .src = .{ .mem, .none } }, | ||
| 25203 | .{ .src = .{ .to_sse, .none } }, | ||
| 25204 | }, | ||
| 25205 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, | ||
| 25206 | .each = .{ .once = &.{ | ||
| 25207 | .{ ._, .vp_d, .shuf, .dst0x, .src0x, .ui(0b10_00_10_00), ._ }, | ||
| 25208 | } }, | ||
| 25209 | }, .{ | ||
| 25210 | .required_features = .{ .sse2, null, null, null }, | ||
| 25211 | .src_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .qword } }, .any }, | ||
| 25212 | .dst_constraints = .{.{ .scalar_int = .{ .of = .qword, .is = .dword } }}, | ||
| 25213 | .patterns = &.{ | ||
| 25214 | .{ .src = .{ .mem, .none } }, | ||
| 25215 | .{ .src = .{ .to_sse, .none } }, | ||
| 25216 | }, | ||
| 25217 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, | ||
| 25218 | .each = .{ .once = &.{ | ||
| 25219 | .{ ._, .p_d, .shuf, .dst0x, .src0x, .ui(0b10_00_10_00), ._ }, | ||
| 25220 | } }, | ||
| 25221 | }, .{ | ||
| 25222 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .qword, .is = .qword } }, .any }, | ||
| 25223 | .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .dword, .is = .dword } }}, | ||
| 25224 | .patterns = &.{ | ||
| 25225 | .{ .src = .{ .to_mem, .none } }, | ||
| 25226 | }, | ||
| 25227 | .extra_temps = .{ | ||
| 25228 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 25229 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | ||
| 25230 | .unused, | ||
| 25231 | .unused, | ||
| 25232 | .unused, | ||
| 25233 | .unused, | ||
| 25234 | .unused, | ||
| 25235 | .unused, | ||
| 25236 | .unused, | ||
| 25237 | }, | ||
| 25238 | .dst_temps = .{.mem}, | ||
| 25239 | .each = .{ .once = &.{ | ||
| 25240 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | ||
| 25241 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, | ||
| 25242 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp1d, ._, ._ }, | ||
| 25243 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | ||
| 25244 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 25245 | } }, | ||
| 25246 | }, .{ | ||
| 25247 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .xword } }, .any }, | ||
| 25248 | .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .dword, .is = .dword } }}, | ||
| 25249 | .patterns = &.{ | ||
| 25250 | .{ .src = .{ .to_mem, .none } }, | ||
| 25251 | }, | ||
| 25252 | .extra_temps = .{ | ||
| 25253 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 25254 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | ||
| 25255 | .unused, | ||
| 25256 | .unused, | ||
| 25257 | .unused, | ||
| 25258 | .unused, | ||
| 25259 | .unused, | ||
| 25260 | .unused, | ||
| 25261 | .unused, | ||
| 25262 | }, | ||
| 25263 | .dst_temps = .{.mem}, | ||
| 25264 | .each = .{ .once = &.{ | ||
| 25265 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | ||
| 25266 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, | ||
| 25267 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp1d, ._, ._ }, | ||
| 25268 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | ||
| 25269 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 25270 | } }, | ||
| 25271 | }, .{ | ||
| 25272 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .yword, .is = .yword } }, .any }, | ||
| 25273 | .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .dword, .is = .dword } }}, | ||
| 25274 | .patterns = &.{ | ||
| 25275 | .{ .src = .{ .to_mem, .none } }, | ||
| 25276 | }, | ||
| 25277 | .extra_temps = .{ | ||
| 25278 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 25279 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | ||
| 25280 | .unused, | ||
| 25281 | .unused, | ||
| 25282 | .unused, | ||
| 25283 | .unused, | ||
| 25284 | .unused, | ||
| 25285 | .unused, | ||
| 25286 | .unused, | ||
| 25287 | }, | ||
| 25288 | .dst_temps = .{.mem}, | ||
| 25289 | .each = .{ .once = &.{ | ||
| 25290 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | ||
| 25291 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, | ||
| 25292 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp1d, ._, ._ }, | ||
| 25293 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | ||
| 25294 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 25295 | } }, | ||
| 25296 | }, .{ | ||
| 25297 | .src_constraints = .{ .any_scalar_int, .any }, | ||
| 25298 | .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .dword, .is = .dword } }}, | ||
| 25299 | .patterns = &.{ | ||
| 25300 | .{ .src = .{ .to_mem, .none } }, | ||
| 25301 | }, | ||
| 25302 | .extra_temps = .{ | ||
| 25303 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 25304 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | ||
| 25305 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | ||
| 25306 | .unused, | ||
| 25307 | .unused, | ||
| 25308 | .unused, | ||
| 25309 | .unused, | ||
| 25310 | .unused, | ||
| 25311 | .unused, | ||
| 25312 | }, | ||
| 25313 | .dst_temps = .{.mem}, | ||
| 25314 | .each = .{ .once = &.{ | ||
| 25315 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | ||
| 25316 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | ||
| 25317 | .{ .@"0:", ._, .mov, .tmp2d, .memi(.src0d, .tmp1), ._, ._ }, | ||
| 25318 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp2d, ._, ._ }, | ||
| 25319 | .{ ._, ._, .lea, .tmp1d, .leaa(.tmp1, .add_src0_elem_size), ._, ._ }, | ||
| 25320 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | ||
| 25321 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 25322 | } }, | ||
| 25323 | }, .{ | ||
| 25324 | .required_features = .{ .sse, null, null, null }, | ||
| 25325 | .src_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .qword } }, .any }, | ||
| 25326 | .dst_constraints = .{.{ .scalar_int = .{ .of = .xword, .is = .qword } }}, | ||
| 25327 | .patterns = &.{ | ||
| 25328 | .{ .src = .{ .mut_mem, .none } }, | ||
| 25329 | .{ .src = .{ .to_mut_sse, .none } }, | ||
| 25330 | }, | ||
| 25331 | .dst_temps = .{.{ .ref = .src0 }}, | ||
| 25332 | .each = .{ .once = &.{} }, | ||
| 25333 | }, .{ | ||
| 25334 | .required_features = .{ .avx, null, null, null }, | ||
| 25335 | .src_constraints = .{ .{ .scalar_int = .{ .of = .yword, .is = .qword } }, .any }, | ||
| 25336 | .dst_constraints = .{.{ .scalar_int = .{ .of = .yword, .is = .qword } }}, | ||
| 25337 | .patterns = &.{ | ||
| 25338 | .{ .src = .{ .mut_mem, .none } }, | ||
| 25339 | .{ .src = .{ .to_mut_sse, .none } }, | ||
| 25340 | }, | ||
| 25341 | .dst_temps = .{.{ .ref = .src0 }}, | ||
| 25342 | .each = .{ .once = &.{} }, | ||
| 25343 | }, .{ | ||
| 25344 | .required_features = .{ .@"64bit", null, null, null }, | ||
| 25345 | .src_constraints = .{ .any_scalar_int, .any }, | ||
| 25346 | .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .qword, .is = .qword } }}, | ||
| 25347 | .patterns = &.{ | ||
| 25348 | .{ .src = .{ .to_mem, .none } }, | ||
| 25349 | }, | ||
| 25350 | .extra_temps = .{ | ||
| 25351 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 25352 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | ||
| 25353 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, | ||
| 25354 | .unused, | ||
| 25355 | .unused, | ||
| 25356 | .unused, | ||
| 25357 | .unused, | ||
| 25358 | .unused, | ||
| 25359 | .unused, | ||
| 25360 | }, | ||
| 25361 | .dst_temps = .{.mem}, | ||
| 25362 | .each = .{ .once = &.{ | ||
| 25363 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | ||
| 25364 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | ||
| 25365 | .{ .@"0:", ._, .mov, .tmp2q, .memi(.src0q, .tmp1), ._, ._ }, | ||
| 25366 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp2q, ._, ._ }, | ||
| 25367 | .{ ._, ._, .lea, .tmp1d, .leaa(.tmp1, .add_src0_elem_size), ._, ._ }, | ||
| 25368 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | ||
| 25369 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 25370 | } }, | ||
| 25371 | }, .{ | ||
| 25372 | .required_features = .{ .sse, null, null, null }, | ||
| 25373 | .src_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .xword } }, .any }, | ||
| 25374 | .dst_constraints = .{.{ .scalar_int = .{ .of = .xword, .is = .xword } }}, | ||
| 25375 | .patterns = &.{ | ||
| 25376 | .{ .src = .{ .mut_mem, .none } }, | ||
| 25377 | .{ .src = .{ .to_mut_sse, .none } }, | ||
| 25378 | }, | ||
| 25379 | .dst_temps = .{.{ .ref = .src0 }}, | ||
| 25380 | .each = .{ .once = &.{} }, | ||
| 25381 | }, .{ | ||
| 25382 | .required_features = .{ .avx, null, null, null }, | ||
| 25383 | .src_constraints = .{ .{ .scalar_int = .{ .of = .yword, .is = .xword } }, .any }, | ||
| 25384 | .dst_constraints = .{.{ .scalar_int = .{ .of = .yword, .is = .xword } }}, | ||
| 25385 | .patterns = &.{ | ||
| 25386 | .{ .src = .{ .mut_mem, .none } }, | ||
| 25387 | .{ .src = .{ .to_mut_sse, .none } }, | ||
| 25388 | }, | ||
| 25389 | .dst_temps = .{.{ .ref = .src0 }}, | ||
| 25390 | .each = .{ .once = &.{} }, | ||
| 25391 | }, .{ | ||
| 25392 | .required_features = .{ .avx, null, null, null }, | ||
| 25393 | .src_constraints = .{ .{ .scalar_int = .{ .of = .yword, .is = .yword } }, .any }, | ||
| 25394 | .dst_constraints = .{.{ .scalar_int = .{ .of = .yword, .is = .yword } }}, | ||
| 25395 | .patterns = &.{ | ||
| 25396 | .{ .src = .{ .mut_mem, .none } }, | ||
| 25397 | .{ .src = .{ .to_mut_sse, .none } }, | ||
| 25398 | }, | ||
| 25399 | .dst_temps = .{.{ .ref = .src0 }}, | ||
| 25400 | .each = .{ .once = &.{} }, | ||
| 25401 | }, .{ | ||
| 25402 | .required_features = .{ .@"64bit", .slow_incdec, null, null }, | ||
| 25403 | .src_constraints = .{ .any_scalar_int, .any }, | ||
| 25404 | .dst_constraints = .{.any_scalar_int}, | ||
| 25405 | .patterns = &.{ | ||
| 25406 | .{ .src = .{ .to_mem, .none } }, | ||
| 25407 | }, | ||
| 25408 | .extra_temps = .{ | ||
| 25409 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | ||
| 25410 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, | ||
| 25411 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | ||
| 25412 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, | ||
| 25413 | .unused, | ||
| 25414 | .unused, | ||
| 25415 | .unused, | ||
| 25416 | .unused, | ||
| 25417 | .unused, | ||
| 25418 | }, | ||
| 25419 | .dst_temps = .{.mem}, | ||
| 25420 | .clobbers = .{ .eflags = true }, | ||
| 25421 | .each = .{ .once = &.{ | ||
| 25422 | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, | ||
| 25423 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, | ||
| 25424 | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, | ||
| 25425 | .{ .@"0:", ._, .mov, .tmp3d, .sa(.dst0, .add_elem_size_div_8), ._, ._ }, | ||
| 25426 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, | ||
| 25427 | .{ ._, ._, .add, .tmp1p, .sa2(.src0, .dst0, .add_delta_elem_size), ._, ._ }, | ||
| 25428 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, | ||
| 25429 | .{ ._, ._a, .j, .@"0b", ._, ._, ._ }, | ||
| 25430 | } }, | ||
| 25431 | }, .{ | ||
| 25432 | .required_features = .{ .@"64bit", null, null, null }, | ||
| 25433 | .src_constraints = .{ .any_scalar_int, .any }, | ||
| 25434 | .dst_constraints = .{.any_scalar_int}, | ||
| 25435 | .patterns = &.{ | ||
| 25436 | .{ .src = .{ .to_mem, .none } }, | ||
| 25437 | }, | ||
| 25438 | .extra_temps = .{ | ||
| 25439 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | ||
| 25440 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, | ||
| 25441 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | ||
| 25442 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, | ||
| 25443 | .unused, | ||
| 25444 | .unused, | ||
| 25445 | .unused, | ||
| 25446 | .unused, | ||
| 25447 | .unused, | ||
| 25448 | }, | ||
| 25449 | .dst_temps = .{.mem}, | ||
| 25450 | .clobbers = .{ .eflags = true }, | ||
| 25451 | .each = .{ .once = &.{ | ||
| 25452 | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, | ||
| 25453 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, | ||
| 25454 | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, | ||
| 25455 | .{ .@"0:", ._, .mov, .tmp3d, .sa(.dst0, .add_elem_size_div_8), ._, ._ }, | ||
| 25456 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, | ||
| 25457 | .{ ._, ._, .add, .tmp1p, .sa2(.src0, .dst0, .add_delta_elem_size), ._, ._ }, | ||
| 25458 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, | ||
| 25459 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, | ||
| 25460 | } }, | ||
| 25461 | } } else comptime &.{ .{ | ||
| 25462 | .src_constraints = .{ .{ .signed_int = .byte }, .any }, | ||
| 25463 | .dst_constraints = .{.{ .signed_int = .dword }}, | ||
| 25464 | .patterns = &.{ | ||
| 25465 | .{ .src = .{ .mem, .none } }, | ||
| 25466 | .{ .src = .{ .to_gpr, .none } }, | ||
| 25467 | }, | ||
| 25468 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } }}, | ||
| 25469 | .each = .{ .once = &.{ | ||
| 25470 | .{ ._, ._, .movsx, .dst0d, .src0b, ._, ._ }, | ||
| 25471 | } }, | ||
| 25472 | }, .{ | ||
| 25473 | .src_constraints = .{ .{ .int = .byte }, .any }, | ||
| 25474 | .dst_constraints = .{.{ .int = .dword }}, | ||
| 25475 | .patterns = &.{ | ||
| 25476 | .{ .src = .{ .mem, .none } }, | ||
| 25477 | .{ .src = .{ .to_gpr, .none } }, | ||
| 25478 | }, | ||
| 25479 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } }}, | ||
| 25480 | .each = .{ .once = &.{ | ||
| 25481 | .{ ._, ._, .movzx, .dst0d, .src0b, ._, ._ }, | ||
| 25482 | } }, | ||
| 25483 | }, .{ | ||
| 25484 | .required_features = .{ .@"64bit", null, null, null }, | ||
| 25485 | .src_constraints = .{ .{ .signed_int = .byte }, .any }, | ||
| 25486 | .dst_constraints = .{.{ .signed_int = .qword }}, | ||
| 25487 | .patterns = &.{ | ||
| 25488 | .{ .src = .{ .mem, .none } }, | ||
| 25489 | .{ .src = .{ .to_gpr, .none } }, | ||
| 25490 | }, | ||
| 25491 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } }}, | ||
| 25492 | .each = .{ .once = &.{ | ||
| 25493 | .{ ._, ._, .movsx, .dst0q, .src0b, ._, ._ }, | ||
| 25494 | } }, | ||
| 25495 | }, .{ | ||
| 25496 | .required_features = .{ .@"64bit", null, null, null }, | ||
| 25497 | .src_constraints = .{ .{ .int = .byte }, .any }, | ||
| 25498 | .dst_constraints = .{.{ .int = .qword }}, | ||
| 25499 | .patterns = &.{ | ||
| 25500 | .{ .src = .{ .mem, .none } }, | ||
| 25501 | .{ .src = .{ .to_gpr, .none } }, | ||
| 25502 | }, | ||
| 25503 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } }}, | ||
| 25504 | .each = .{ .once = &.{ | ||
| 25505 | .{ ._, ._, .movzx, .dst0d, .src0b, ._, ._ }, | ||
| 25506 | } }, | ||
| 25507 | }, .{ | ||
| 25508 | .required_features = .{ .@"64bit", null, null, null }, | ||
| 25509 | .src_constraints = .{ .{ .signed_int = .byte }, .any }, | ||
| 25510 | .dst_constraints = .{.{ .signed_remainder_int = .{ .of = .qword, .is = .qword } }}, | ||
| 25511 | .patterns = &.{ | ||
| 25512 | .{ .src = .{ .mem, .none } }, | ||
| 25513 | .{ .src = .{ .to_gpr, .none } }, | ||
| 25514 | }, | ||
| 25515 | .extra_temps = .{ | ||
| 25516 | .{ .type = .i64, .kind = .{ .reg = .rax } }, | ||
| 25517 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | ||
| 25518 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, | ||
| 25519 | .unused, | ||
| 25520 | .unused, | ||
| 25521 | .unused, | ||
| 25522 | .unused, | ||
| 25523 | .unused, | ||
| 25524 | .unused, | ||
| 25525 | }, | ||
| 25526 | .dst_temps = .{.mem}, | ||
| 25527 | .clobbers = .{ .eflags = true }, | ||
| 25528 | .each = .{ .once = &.{ | ||
| 25529 | .{ ._, ._, .movsx, .tmp0q, .src0b, ._, ._ }, | ||
| 25530 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, | ||
| 25531 | .{ ._, ._sq, .sto, ._, ._, ._, ._ }, | ||
| 25532 | .{ ._, ._r, .sa, .tmp0q, .ui(63), ._, ._ }, | ||
| 25533 | .{ ._, ._, .mov, .tmp2d, .sia(-1, .dst0, .add_size_div_8), ._, ._ }, | ||
| 25534 | .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ }, | ||
| 25535 | } }, | ||
| 25536 | }, .{ | ||
| 25537 | .required_features = .{ .@"64bit", null, null, null }, | ||
| 25538 | .src_constraints = .{ .{ .int = .byte }, .any }, | ||
| 25539 | .dst_constraints = .{.{ .remainder_int = .{ .of = .qword, .is = .qword } }}, | ||
| 25540 | .patterns = &.{ | ||
| 25541 | .{ .src = .{ .mem, .none } }, | ||
| 25542 | .{ .src = .{ .to_gpr, .none } }, | ||
| 25543 | }, | ||
| 25544 | .extra_temps = .{ | ||
| 25545 | .{ .type = .u64, .kind = .{ .reg = .rax } }, | ||
| 25546 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | ||
| 25547 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, | ||
| 25548 | .unused, | ||
| 25549 | .unused, | ||
| 25550 | .unused, | ||
| 25551 | .unused, | ||
| 25552 | .unused, | ||
| 25553 | .unused, | ||
| 25554 | }, | ||
| 25555 | .dst_temps = .{.mem}, | ||
| 25556 | .clobbers = .{ .eflags = true }, | ||
| 25557 | .each = .{ .once = &.{ | ||
| 25558 | .{ ._, ._, .movzx, .tmp0d, .src0b, ._, ._ }, | ||
| 25559 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, | ||
| 25560 | .{ ._, ._sq, .sto, ._, ._, ._, ._ }, | ||
| 25561 | .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, | ||
| 25562 | .{ ._, ._, .mov, .tmp2d, .sia(-1, .dst0, .add_size_div_8), ._, ._ }, | ||
| 25563 | .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ }, | ||
| 25564 | } }, | ||
| 25565 | }, .{ | ||
| 25566 | .src_constraints = .{ .{ .signed_int = .byte }, .any }, | ||
| 25567 | .dst_constraints = .{.{ .signed_remainder_int = .{ .of = .dword, .is = .dword } }}, | ||
| 25568 | .patterns = &.{ | ||
| 25569 | .{ .src = .{ .mem, .none } }, | ||
| 25570 | .{ .src = .{ .to_gpr, .none } }, | ||
| 25571 | }, | ||
| 25572 | .extra_temps = .{ | ||
| 25573 | .{ .type = .i32, .kind = .{ .reg = .eax } }, | ||
| 25574 | .{ .type = .usize, .kind = .{ .reg = .edi } }, | ||
| 25575 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, | ||
| 25576 | .unused, | ||
| 25577 | .unused, | ||
| 25578 | .unused, | ||
| 25579 | .unused, | ||
| 25580 | .unused, | ||
| 25581 | .unused, | ||
| 25582 | }, | ||
| 25583 | .dst_temps = .{.mem}, | ||
| 25584 | .clobbers = .{ .eflags = true }, | ||
| 25585 | .each = .{ .once = &.{ | ||
| 25586 | .{ ._, ._, .movsx, .tmp0d, .src0b, ._, ._ }, | ||
| 25587 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, | ||
| 25588 | .{ ._, ._sd, .sto, ._, ._, ._, ._ }, | ||
| 25589 | .{ ._, ._r, .sa, .tmp0d, .ui(31), ._, ._ }, | ||
| 25590 | .{ ._, ._, .mov, .tmp2d, .sia(-1, .dst0, .add_size_div_4), ._, ._ }, | ||
| 25591 | .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ }, | ||
| 25592 | } }, | ||
| 25593 | }, .{ | ||
| 25594 | .src_constraints = .{ .{ .int = .byte }, .any }, | ||
| 25595 | .dst_constraints = .{.{ .remainder_int = .{ .of = .dword, .is = .dword } }}, | ||
| 25596 | .patterns = &.{ | ||
| 25597 | .{ .src = .{ .mem, .none } }, | ||
| 25598 | .{ .src = .{ .to_gpr, .none } }, | ||
| 25599 | }, | ||
| 25600 | .extra_temps = .{ | ||
| 25601 | .{ .type = .u32, .kind = .{ .reg = .eax } }, | ||
| 25602 | .{ .type = .usize, .kind = .{ .reg = .edi } }, | ||
| 25603 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, | ||
| 25604 | .unused, | ||
| 25605 | .unused, | ||
| 25606 | .unused, | ||
| 25607 | .unused, | ||
| 25608 | .unused, | ||
| 25609 | .unused, | ||
| 25610 | }, | ||
| 25611 | .dst_temps = .{.mem}, | ||
| 25612 | .clobbers = .{ .eflags = true }, | ||
| 25613 | .each = .{ .once = &.{ | ||
| 25614 | .{ ._, ._, .movzx, .tmp0d, .src0b, ._, ._ }, | ||
| 25615 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, | ||
| 25616 | .{ ._, ._sd, .sto, ._, ._, ._, ._ }, | ||
| 25617 | .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, | ||
| 25618 | .{ ._, ._, .mov, .tmp2d, .sia(-1, .dst0, .add_size_div_4), ._, ._ }, | ||
| 25619 | .{ ._, .@"rep _sd", .sto, ._, ._, ._, ._ }, | ||
| 25620 | } }, | ||
| 25621 | }, .{ | ||
| 25622 | .src_constraints = .{ .{ .signed_int = .word }, .any }, | ||
| 25623 | .dst_constraints = .{.{ .signed_int = .dword }}, | ||
| 25624 | .patterns = &.{ | ||
| 25625 | .{ .src = .{ .mem, .none } }, | ||
| 25626 | .{ .src = .{ .to_gpr, .none } }, | ||
| 25627 | }, | ||
| 25628 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } }}, | ||
| 25629 | .each = .{ .once = &.{ | ||
| 25630 | .{ ._, ._, .movsx, .dst0d, .src0w, ._, ._ }, | ||
| 25631 | } }, | ||
| 25632 | }, .{ | ||
| 25633 | .src_constraints = .{ .{ .int = .word }, .any }, | ||
| 25634 | .dst_constraints = .{.{ .int = .dword }}, | ||
| 25635 | .patterns = &.{ | ||
| 25636 | .{ .src = .{ .mem, .none } }, | ||
| 25637 | .{ .src = .{ .to_gpr, .none } }, | ||
| 25638 | }, | ||
| 25639 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } }}, | ||
| 25640 | .each = .{ .once = &.{ | ||
| 25641 | .{ ._, ._, .movzx, .dst0d, .src0w, ._, ._ }, | ||
| 25642 | } }, | ||
| 25643 | }, .{ | ||
| 25644 | .required_features = .{ .@"64bit", null, null, null }, | ||
| 25645 | .src_constraints = .{ .{ .signed_int = .word }, .any }, | ||
| 25646 | .dst_constraints = .{.{ .signed_int = .qword }}, | ||
| 25647 | .patterns = &.{ | ||
| 25648 | .{ .src = .{ .mem, .none } }, | ||
| 25649 | .{ .src = .{ .to_gpr, .none } }, | ||
| 25650 | }, | ||
| 25651 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } }}, | ||
| 25652 | .each = .{ .once = &.{ | ||
| 25653 | .{ ._, ._, .movsx, .dst0q, .src0w, ._, ._ }, | ||
| 25654 | } }, | ||
| 25655 | }, .{ | ||
| 25656 | .required_features = .{ .@"64bit", null, null, null }, | ||
| 25657 | .src_constraints = .{ .{ .int = .word }, .any }, | ||
| 25658 | .dst_constraints = .{.{ .int = .qword }}, | ||
| 25659 | .patterns = &.{ | ||
| 25660 | .{ .src = .{ .mem, .none } }, | ||
| 25661 | .{ .src = .{ .to_gpr, .none } }, | ||
| 25662 | }, | ||
| 25663 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } }}, | ||
| 25664 | .each = .{ .once = &.{ | ||
| 25665 | .{ ._, ._, .movzx, .dst0d, .src0w, ._, ._ }, | ||
| 25666 | } }, | ||
| 25667 | }, .{ | ||
| 25668 | .required_features = .{ .@"64bit", null, null, null }, | ||
| 25669 | .src_constraints = .{ .{ .signed_int = .word }, .any }, | ||
| 25670 | .dst_constraints = .{.{ .signed_remainder_int = .{ .of = .qword, .is = .qword } }}, | ||
| 25671 | .patterns = &.{ | ||
| 25672 | .{ .src = .{ .mem, .none } }, | ||
| 25673 | .{ .src = .{ .to_gpr, .none } }, | ||
| 25674 | }, | ||
| 25675 | .extra_temps = .{ | ||
| 25676 | .{ .type = .i64, .kind = .{ .reg = .rax } }, | ||
| 25677 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | ||
| 25678 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, | ||
| 25679 | .unused, | ||
| 25680 | .unused, | ||
| 25681 | .unused, | ||
| 25682 | .unused, | ||
| 25683 | .unused, | ||
| 25684 | .unused, | ||
| 25685 | }, | ||
| 25686 | .dst_temps = .{.mem}, | ||
| 25687 | .clobbers = .{ .eflags = true }, | ||
| 25688 | .each = .{ .once = &.{ | ||
| 25689 | .{ ._, ._, .movsx, .tmp0q, .src0w, ._, ._ }, | ||
| 25690 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, | ||
| 25691 | .{ ._, ._sq, .sto, ._, ._, ._, ._ }, | ||
| 25692 | .{ ._, ._r, .sa, .tmp0q, .ui(63), ._, ._ }, | ||
| 25693 | .{ ._, ._, .mov, .tmp2d, .sia(-1, .dst0, .add_size_div_8), ._, ._ }, | ||
| 25694 | .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ }, | ||
| 25695 | } }, | ||
| 25696 | }, .{ | ||
| 25697 | .required_features = .{ .@"64bit", null, null, null }, | ||
| 25698 | .src_constraints = .{ .{ .int = .word }, .any }, | ||
| 25699 | .dst_constraints = .{.{ .remainder_int = .{ .of = .qword, .is = .qword } }}, | ||
| 25700 | .patterns = &.{ | ||
| 25701 | .{ .src = .{ .mem, .none } }, | ||
| 25702 | .{ .src = .{ .to_gpr, .none } }, | ||
| 25703 | }, | ||
| 25704 | .extra_temps = .{ | ||
| 25705 | .{ .type = .u64, .kind = .{ .reg = .rax } }, | ||
| 25706 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | ||
| 25707 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, | ||
| 25708 | .unused, | ||
| 25709 | .unused, | ||
| 25710 | .unused, | ||
| 25711 | .unused, | ||
| 25712 | .unused, | ||
| 25713 | .unused, | ||
| 25714 | }, | ||
| 25715 | .dst_temps = .{.mem}, | ||
| 25716 | .clobbers = .{ .eflags = true }, | ||
| 25717 | .each = .{ .once = &.{ | ||
| 25718 | .{ ._, ._, .movzx, .tmp0d, .src0w, ._, ._ }, | ||
| 25719 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, | ||
| 25720 | .{ ._, ._sq, .sto, ._, ._, ._, ._ }, | ||
| 25721 | .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, | ||
| 25722 | .{ ._, ._, .mov, .tmp2d, .sia(-1, .dst0, .add_size_div_8), ._, ._ }, | ||
| 25723 | .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ }, | ||
| 25724 | } }, | ||
| 25725 | }, .{ | ||
| 25726 | .src_constraints = .{ .{ .signed_int = .word }, .any }, | ||
| 25727 | .dst_constraints = .{.{ .signed_remainder_int = .{ .of = .dword, .is = .dword } }}, | ||
| 25728 | .patterns = &.{ | ||
| 25729 | .{ .src = .{ .mem, .none } }, | ||
| 25730 | .{ .src = .{ .to_gpr, .none } }, | ||
| 25731 | }, | ||
| 25732 | .extra_temps = .{ | ||
| 25733 | .{ .type = .i32, .kind = .{ .reg = .eax } }, | ||
| 25734 | .{ .type = .usize, .kind = .{ .reg = .edi } }, | ||
| 25735 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, | ||
| 25736 | .unused, | ||
| 25737 | .unused, | ||
| 25738 | .unused, | ||
| 25739 | .unused, | ||
| 25740 | .unused, | ||
| 25741 | .unused, | ||
| 25742 | }, | ||
| 25743 | .dst_temps = .{.mem}, | ||
| 25744 | .clobbers = .{ .eflags = true }, | ||
| 25745 | .each = .{ .once = &.{ | ||
| 25746 | .{ ._, ._, .movsx, .tmp0d, .src0w, ._, ._ }, | ||
| 25747 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, | ||
| 25748 | .{ ._, ._sd, .sto, ._, ._, ._, ._ }, | ||
| 25749 | .{ ._, ._r, .sa, .tmp0d, .ui(31), ._, ._ }, | ||
| 25750 | .{ ._, ._, .mov, .tmp2d, .sia(-1, .dst0, .add_size_div_4), ._, ._ }, | ||
| 25751 | .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ }, | ||
| 25752 | } }, | ||
| 25753 | }, .{ | ||
| 25754 | .src_constraints = .{ .{ .int = .word }, .any }, | ||
| 25755 | .dst_constraints = .{.{ .remainder_int = .{ .of = .dword, .is = .dword } }}, | ||
| 25756 | .patterns = &.{ | ||
| 25757 | .{ .src = .{ .mem, .none } }, | ||
| 25758 | .{ .src = .{ .to_gpr, .none } }, | ||
| 25759 | }, | ||
| 25760 | .extra_temps = .{ | ||
| 25761 | .{ .type = .u32, .kind = .{ .reg = .eax } }, | ||
| 25762 | .{ .type = .usize, .kind = .{ .reg = .edi } }, | ||
| 25763 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, | ||
| 25764 | .unused, | ||
| 25765 | .unused, | ||
| 25766 | .unused, | ||
| 25767 | .unused, | ||
| 25768 | .unused, | ||
| 25769 | .unused, | ||
| 25770 | }, | ||
| 25771 | .dst_temps = .{.mem}, | ||
| 25772 | .clobbers = .{ .eflags = true }, | ||
| 25773 | .each = .{ .once = &.{ | ||
| 25774 | .{ ._, ._, .movzx, .tmp0d, .src0w, ._, ._ }, | ||
| 25775 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, | ||
| 25776 | .{ ._, ._sd, .sto, ._, ._, ._, ._ }, | ||
| 25777 | .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, | ||
| 25778 | .{ ._, ._, .mov, .tmp2d, .sia(-1, .dst0, .add_size_div_4), ._, ._ }, | ||
| 25779 | .{ ._, .@"rep _sd", .sto, ._, ._, ._, ._ }, | ||
| 25780 | } }, | ||
| 25781 | }, .{ | ||
| 25782 | .required_features = .{ .@"64bit", null, null, null }, | ||
| 25783 | .src_constraints = .{ .{ .signed_int = .dword }, .any }, | ||
| 25784 | .dst_constraints = .{.{ .signed_int = .qword }}, | ||
| 25785 | .patterns = &.{ | ||
| 25786 | .{ .src = .{ .mem, .none } }, | ||
| 25787 | .{ .src = .{ .to_gpr, .none } }, | ||
| 25788 | }, | ||
| 25789 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } }}, | ||
| 25790 | .each = .{ .once = &.{ | ||
| 25791 | .{ ._, ._d, .movsx, .dst0q, .src0d, ._, ._ }, | ||
| 25792 | } }, | ||
| 25793 | }, .{ | ||
| 25794 | .required_features = .{ .@"64bit", null, null, null }, | ||
| 25795 | .src_constraints = .{ .{ .int = .dword }, .any }, | ||
| 25796 | .dst_constraints = .{.{ .int = .qword }}, | ||
| 25797 | .patterns = &.{ | ||
| 25798 | .{ .src = .{ .mem, .none } }, | ||
| 25799 | .{ .src = .{ .to_gpr, .none } }, | ||
| 25800 | }, | ||
| 25801 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } }}, | ||
| 25802 | .each = .{ .once = &.{ | ||
| 25803 | .{ ._, ._, .mov, .dst0d, .src0d, ._, ._ }, | ||
| 25804 | } }, | ||
| 25805 | }, .{ | ||
| 25806 | .required_features = .{ .@"64bit", null, null, null }, | ||
| 25807 | .src_constraints = .{ .{ .signed_int = .dword }, .any }, | ||
| 25808 | .dst_constraints = .{.{ .signed_remainder_int = .{ .of = .qword, .is = .qword } }}, | ||
| 25809 | .patterns = &.{ | ||
| 25810 | .{ .src = .{ .mem, .none } }, | ||
| 25811 | .{ .src = .{ .to_gpr, .none } }, | ||
| 25812 | }, | ||
| 25813 | .extra_temps = .{ | ||
| 25814 | .{ .type = .i64, .kind = .{ .reg = .rax } }, | ||
| 25815 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | ||
| 25816 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, | ||
| 25817 | .unused, | ||
| 25818 | .unused, | ||
| 25819 | .unused, | ||
| 25820 | .unused, | ||
| 25821 | .unused, | ||
| 25822 | .unused, | ||
| 25823 | }, | ||
| 25824 | .dst_temps = .{.mem}, | ||
| 25825 | .clobbers = .{ .eflags = true }, | ||
| 25826 | .each = .{ .once = &.{ | ||
| 25827 | .{ ._, ._d, .movsx, .tmp0q, .src0d, ._, ._ }, | ||
| 25828 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, | ||
| 25829 | .{ ._, ._sq, .sto, ._, ._, ._, ._ }, | ||
| 25830 | .{ ._, ._r, .sa, .tmp0q, .ui(63), ._, ._ }, | ||
| 25831 | .{ ._, ._, .mov, .tmp2d, .sia(-1, .dst0, .add_size_div_8), ._, ._ }, | ||
| 25832 | .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ }, | ||
| 25833 | } }, | ||
| 25834 | }, .{ | ||
| 25835 | .required_features = .{ .@"64bit", null, null, null }, | ||
| 25836 | .src_constraints = .{ .{ .int = .dword }, .any }, | ||
| 25837 | .dst_constraints = .{.{ .remainder_int = .{ .of = .qword, .is = .qword } }}, | ||
| 25838 | .patterns = &.{ | ||
| 25839 | .{ .src = .{ .mem, .none } }, | ||
| 25840 | .{ .src = .{ .to_gpr, .none } }, | ||
| 25841 | }, | ||
| 25842 | .extra_temps = .{ | ||
| 25843 | .{ .type = .u64, .kind = .{ .reg = .rax } }, | ||
| 25844 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | ||
| 25845 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, | ||
| 25846 | .unused, | ||
| 25847 | .unused, | ||
| 25848 | .unused, | ||
| 25849 | .unused, | ||
| 25850 | .unused, | ||
| 25851 | .unused, | ||
| 25852 | }, | ||
| 25853 | .dst_temps = .{.mem}, | ||
| 25854 | .clobbers = .{ .eflags = true }, | ||
| 25855 | .each = .{ .once = &.{ | ||
| 25856 | .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ }, | ||
| 25857 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, | ||
| 25858 | .{ ._, ._sq, .sto, ._, ._, ._, ._ }, | ||
| 25859 | .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, | ||
| 25860 | .{ ._, ._, .mov, .tmp2d, .sia(-1, .dst0, .add_size_div_8), ._, ._ }, | ||
| 25861 | .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ }, | ||
| 25862 | } }, | ||
| 25863 | }, .{ | ||
| 25864 | .src_constraints = .{ .{ .signed_int = .dword }, .any }, | ||
| 25865 | .dst_constraints = .{.{ .signed_remainder_int = .{ .of = .dword, .is = .dword } }}, | ||
| 25866 | .patterns = &.{ | ||
| 25867 | .{ .src = .{ .mem, .none } }, | ||
| 25868 | .{ .src = .{ .to_gpr, .none } }, | ||
| 25869 | }, | ||
| 25870 | .extra_temps = .{ | ||
| 25871 | .{ .type = .i32, .kind = .{ .reg = .eax } }, | ||
| 25872 | .{ .type = .usize, .kind = .{ .reg = .edi } }, | ||
| 25873 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, | ||
| 25874 | .unused, | ||
| 25875 | .unused, | ||
| 25876 | .unused, | ||
| 25877 | .unused, | ||
| 25878 | .unused, | ||
| 25879 | .unused, | ||
| 25880 | }, | ||
| 25881 | .dst_temps = .{.mem}, | ||
| 25882 | .clobbers = .{ .eflags = true }, | ||
| 25883 | .each = .{ .once = &.{ | ||
| 25884 | .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ }, | ||
| 25885 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, | ||
| 25886 | .{ ._, ._sd, .sto, ._, ._, ._, ._ }, | ||
| 25887 | .{ ._, ._r, .sa, .tmp0d, .ui(31), ._, ._ }, | ||
| 25888 | .{ ._, ._, .mov, .tmp2d, .sia(-1, .dst0, .add_size_div_4), ._, ._ }, | ||
| 25889 | .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ }, | ||
| 25890 | } }, | ||
| 25891 | }, .{ | ||
| 25892 | .src_constraints = .{ .{ .int = .dword }, .any }, | ||
| 25893 | .dst_constraints = .{.{ .remainder_int = .{ .of = .dword, .is = .dword } }}, | ||
| 25894 | .patterns = &.{ | ||
| 25895 | .{ .src = .{ .mem, .none } }, | ||
| 25896 | .{ .src = .{ .to_gpr, .none } }, | ||
| 25897 | }, | ||
| 25898 | .extra_temps = .{ | ||
| 25899 | .{ .type = .u32, .kind = .{ .reg = .eax } }, | ||
| 25900 | .{ .type = .usize, .kind = .{ .reg = .edi } }, | ||
| 25901 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, | ||
| 25902 | .unused, | ||
| 25903 | .unused, | ||
| 25904 | .unused, | ||
| 25905 | .unused, | ||
| 25906 | .unused, | ||
| 25907 | .unused, | ||
| 25908 | }, | ||
| 25909 | .dst_temps = .{.mem}, | ||
| 25910 | .clobbers = .{ .eflags = true }, | ||
| 25911 | .each = .{ .once = &.{ | ||
| 25912 | .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ }, | ||
| 25913 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, | ||
| 25914 | .{ ._, ._sd, .sto, ._, ._, ._, ._ }, | ||
| 25915 | .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, | ||
| 25916 | .{ ._, ._, .mov, .tmp2d, .sia(-1, .dst0, .add_size_div_4), ._, ._ }, | ||
| 25917 | .{ ._, .@"rep _sd", .sto, ._, ._, ._, ._ }, | ||
| 25918 | } }, | ||
| 25919 | }, .{ | ||
| 25920 | .required_features = .{ .@"64bit", null, null, null }, | ||
| 25921 | .src_constraints = .{ .{ .signed_int = .qword }, .any }, | ||
| 25922 | .dst_constraints = .{.{ .signed_remainder_int = .{ .of = .qword, .is = .qword } }}, | ||
| 25923 | .patterns = &.{ | ||
| 25924 | .{ .src = .{ .mem, .none } }, | ||
| 25925 | .{ .src = .{ .to_gpr, .none } }, | ||
| 25926 | }, | ||
| 25927 | .extra_temps = .{ | ||
| 25928 | .{ .type = .i64, .kind = .{ .reg = .rax } }, | ||
| 25929 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | ||
| 25930 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, | ||
| 25931 | .unused, | ||
| 25932 | .unused, | ||
| 25933 | .unused, | ||
| 25934 | .unused, | ||
| 25935 | .unused, | ||
| 25936 | .unused, | ||
| 25937 | }, | ||
| 25938 | .dst_temps = .{.mem}, | ||
| 25939 | .clobbers = .{ .eflags = true }, | ||
| 25940 | .each = .{ .once = &.{ | ||
| 25941 | .{ ._, ._, .mov, .tmp0q, .src0q, ._, ._ }, | ||
| 25942 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, | ||
| 25943 | .{ ._, ._sq, .sto, ._, ._, ._, ._ }, | ||
| 25944 | .{ ._, ._r, .sa, .tmp0q, .ui(63), ._, ._ }, | ||
| 25945 | .{ ._, ._, .mov, .tmp2d, .sia(-1, .dst0, .add_size_div_8), ._, ._ }, | ||
| 25946 | .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ }, | ||
| 25947 | } }, | ||
| 25948 | }, .{ | ||
| 25949 | .required_features = .{ .@"64bit", null, null, null }, | ||
| 25950 | .src_constraints = .{ .{ .int = .qword }, .any }, | ||
| 25951 | .dst_constraints = .{.{ .remainder_int = .{ .of = .qword, .is = .qword } }}, | ||
| 25952 | .patterns = &.{ | ||
| 25953 | .{ .src = .{ .mem, .none } }, | ||
| 25954 | .{ .src = .{ .to_gpr, .none } }, | ||
| 25955 | }, | ||
| 25956 | .extra_temps = .{ | ||
| 25957 | .{ .type = .u64, .kind = .{ .reg = .rax } }, | ||
| 25958 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | ||
| 25959 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, | ||
| 25960 | .unused, | ||
| 25961 | .unused, | ||
| 25962 | .unused, | ||
| 25963 | .unused, | ||
| 25964 | .unused, | ||
| 25965 | .unused, | ||
| 25966 | }, | ||
| 25967 | .dst_temps = .{.mem}, | ||
| 25968 | .clobbers = .{ .eflags = true }, | ||
| 25969 | .each = .{ .once = &.{ | ||
| 25970 | .{ ._, ._, .mov, .tmp0q, .src0q, ._, ._ }, | ||
| 25971 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, | ||
| 25972 | .{ ._, ._sq, .sto, ._, ._, ._, ._ }, | ||
| 25973 | .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, | ||
| 25974 | .{ ._, ._, .mov, .tmp2d, .sia(-1, .dst0, .add_size_div_8), ._, ._ }, | ||
| 25975 | .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ }, | ||
| 25976 | } }, | ||
| 25977 | }, .{ | ||
| 25978 | .required_features = .{ .@"64bit", null, null, null }, | ||
| 25979 | .src_constraints = .{ .{ .signed_remainder_int = .{ .of = .qword, .is = .qword } }, .any }, | ||
| 25980 | .dst_constraints = .{.{ .signed_remainder_int = .{ .of = .qword, .is = .qword } }}, | ||
| 25981 | .patterns = &.{ | ||
| 25982 | .{ .src = .{ .to_mem, .none } }, | ||
| 25983 | }, | ||
| 25984 | .extra_temps = .{ | ||
| 25985 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, | ||
| 25986 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | ||
| 25987 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, | ||
| 25988 | .{ .type = .i64, .kind = .{ .reg = .rax } }, | ||
| 25989 | .unused, | ||
| 25990 | .unused, | ||
| 25991 | .unused, | ||
| 25992 | .unused, | ||
| 25993 | .unused, | ||
| 25994 | }, | ||
| 25995 | .dst_temps = .{.mem}, | ||
| 25996 | .clobbers = .{ .eflags = true }, | ||
| 25997 | .each = .{ .once = &.{ | ||
| 25998 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, | ||
| 25999 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, | ||
| 26000 | .{ ._, ._, .mov, .tmp2d, .sia(-1, .src0, .add_size_div_8), ._, ._ }, | ||
| 26001 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, | ||
| 26002 | .{ ._, ._sq, .lod, ._, ._, ._, ._ }, | ||
| 26003 | .{ ._, ._sq, .sto, ._, ._, ._, ._ }, | ||
| 26004 | .{ ._, ._r, .sa, .tmp3q, .ui(63), ._, ._ }, | ||
| 26005 | .{ ._, ._, .mov, .tmp2d, .sa2(.dst0, .src0, .add_delta_size_div_8), ._, ._ }, | ||
| 26006 | .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ }, | ||
| 26007 | } }, | ||
| 26008 | }, .{ | ||
| 26009 | .required_features = .{ .@"64bit", null, null, null }, | ||
| 26010 | .src_constraints = .{ .{ .remainder_int = .{ .of = .qword, .is = .qword } }, .any }, | ||
| 26011 | .dst_constraints = .{.{ .remainder_int = .{ .of = .qword, .is = .qword } }}, | ||
| 26012 | .patterns = &.{ | ||
| 26013 | .{ .src = .{ .to_mem, .none } }, | ||
| 26014 | }, | ||
| 26015 | .extra_temps = .{ | ||
| 26016 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, | ||
| 26017 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | ||
| 26018 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, | ||
| 26019 | .{ .type = .u64, .kind = .{ .reg = .rax } }, | ||
| 26020 | .unused, | ||
| 26021 | .unused, | ||
| 26022 | .unused, | ||
| 26023 | .unused, | ||
| 26024 | .unused, | ||
| 26025 | }, | ||
| 26026 | .dst_temps = .{.mem}, | ||
| 26027 | .clobbers = .{ .eflags = true }, | ||
| 26028 | .each = .{ .once = &.{ | ||
| 26029 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, | ||
| 26030 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, | ||
| 26031 | .{ ._, ._, .mov, .tmp2d, .sa(.src0, .add_size_div_8), ._, ._ }, | ||
| 26032 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, | ||
| 26033 | .{ ._, ._, .xor, .tmp3d, .tmp3d, ._, ._ }, | ||
| 26034 | .{ ._, ._, .mov, .tmp2d, .sa2(.dst0, .src0, .add_delta_size_div_8), ._, ._ }, | ||
| 26035 | .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ }, | ||
| 26036 | } }, | ||
| 26037 | }, .{ | ||
| 26038 | .required_features = .{ .avx, null, null, null }, | ||
| 26039 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .qword, .is = .byte } }, .any }, | ||
| 26040 | .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .xword, .is = .word } }}, | ||
| 26041 | .patterns = &.{ | ||
| 26042 | .{ .src = .{ .mem, .none } }, | ||
| 26043 | .{ .src = .{ .to_sse, .none } }, | ||
| 26044 | }, | ||
| 26045 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, | ||
| 26046 | .each = .{ .once = &.{ | ||
| 26047 | .{ ._, .vp_w, .movsxb, .dst0x, .src0q, ._, ._ }, | ||
| 26048 | } }, | ||
| 26049 | }, .{ | ||
| 26050 | .required_features = .{ .avx, null, null, null }, | ||
| 26051 | .src_constraints = .{ .{ .scalar_int = .{ .of = .qword, .is = .byte } }, .any }, | ||
| 26052 | .dst_constraints = .{.{ .scalar_int = .{ .of = .xword, .is = .word } }}, | ||
| 26053 | .patterns = &.{ | ||
| 26054 | .{ .src = .{ .mem, .none } }, | ||
| 26055 | .{ .src = .{ .to_sse, .none } }, | ||
| 26056 | }, | ||
| 26057 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, | ||
| 26058 | .each = .{ .once = &.{ | ||
| 26059 | .{ ._, .vp_w, .movzxb, .dst0x, .src0q, ._, ._ }, | ||
| 26060 | } }, | ||
| 26061 | }, .{ | ||
| 26062 | .required_features = .{ .sse4_1, null, null, null }, | ||
| 26063 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .qword, .is = .byte } }, .any }, | ||
| 26064 | .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .xword, .is = .word } }}, | ||
| 26065 | .patterns = &.{ | ||
| 26066 | .{ .src = .{ .mem, .none } }, | ||
| 26067 | .{ .src = .{ .to_sse, .none } }, | ||
| 26068 | }, | ||
| 26069 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, | ||
| 26070 | .each = .{ .once = &.{ | ||
| 26071 | .{ ._, .p_w, .movsxb, .dst0x, .src0q, ._, ._ }, | ||
| 26072 | } }, | ||
| 26073 | }, .{ | ||
| 26074 | .required_features = .{ .sse4_1, null, null, null }, | ||
| 26075 | .src_constraints = .{ .{ .scalar_int = .{ .of = .qword, .is = .byte } }, .any }, | ||
| 26076 | .dst_constraints = .{.{ .scalar_int = .{ .of = .xword, .is = .word } }}, | ||
| 26077 | .patterns = &.{ | ||
| 26078 | .{ .src = .{ .mem, .none } }, | ||
| 26079 | .{ .src = .{ .to_sse, .none } }, | ||
| 26080 | }, | ||
| 26081 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, | ||
| 26082 | .each = .{ .once = &.{ | ||
| 26083 | .{ ._, .p_w, .movzxb, .dst0x, .src0q, ._, ._ }, | ||
| 26084 | } }, | ||
| 26085 | }, .{ | ||
| 26086 | .required_features = .{ .sse2, null, null, null }, | ||
| 26087 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .qword, .is = .byte } }, .any }, | ||
| 26088 | .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .xword, .is = .word } }}, | ||
| 26089 | .patterns = &.{ | ||
| 26090 | .{ .src = .{ .to_mut_sse, .none } }, | ||
| 26091 | }, | ||
| 26092 | .extra_temps = .{ | ||
| 26093 | .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } }, | ||
| 26094 | .unused, | ||
| 26095 | .unused, | ||
| 26096 | .unused, | ||
| 26097 | .unused, | ||
| 26098 | .unused, | ||
| 26099 | .unused, | ||
| 26100 | .unused, | ||
| 26101 | .unused, | ||
| 26102 | }, | ||
| 26103 | .dst_temps = .{.{ .ref = .src0 }}, | ||
| 26104 | .each = .{ .once = &.{ | ||
| 26105 | .{ ._, .p_, .xor, .tmp0x, .tmp0x, ._, ._ }, | ||
| 26106 | .{ ._, .p_b, .cmpgt, .tmp0x, .src0x, ._, ._ }, | ||
| 26107 | .{ ._, .p_, .unpcklbw, .dst0x, .tmp0x, ._, ._ }, | ||
| 26108 | } }, | ||
| 26109 | }, .{ | ||
| 26110 | .required_features = .{ .sse2, null, null, null }, | ||
| 26111 | .src_constraints = .{ .{ .scalar_int = .{ .of = .qword, .is = .byte } }, .any }, | ||
| 26112 | .dst_constraints = .{.{ .scalar_int = .{ .of = .xword, .is = .word } }}, | ||
| 26113 | .patterns = &.{ | ||
| 26114 | .{ .src = .{ .to_mut_sse, .none } }, | ||
| 26115 | }, | ||
| 26116 | .extra_temps = .{ | ||
| 26117 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, | ||
| 26118 | .unused, | ||
| 26119 | .unused, | ||
| 26120 | .unused, | ||
| 26121 | .unused, | ||
| 26122 | .unused, | ||
| 26123 | .unused, | ||
| 26124 | .unused, | ||
| 26125 | .unused, | ||
| 26126 | }, | ||
| 26127 | .dst_temps = .{.{ .ref = .src0 }}, | ||
| 26128 | .each = .{ .once = &.{ | ||
| 26129 | .{ ._, .p_, .xor, .tmp0x, .tmp0x, ._, ._ }, | ||
| 26130 | .{ ._, .p_, .unpcklbw, .dst0x, .tmp0x, ._, ._ }, | ||
| 26131 | } }, | ||
| 26132 | }, .{ | ||
| 26133 | .required_features = .{ .avx2, null, null, null }, | ||
| 26134 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .byte } }, .any }, | ||
| 26135 | .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .yword, .is = .word } }}, | ||
| 26136 | .patterns = &.{ | ||
| 26137 | .{ .src = .{ .mem, .none } }, | ||
| 26138 | .{ .src = .{ .to_sse, .none } }, | ||
| 26139 | }, | ||
| 26140 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, | ||
| 26141 | .each = .{ .once = &.{ | ||
| 26142 | .{ ._, .vp_w, .movsxb, .dst0y, .src0x, ._, ._ }, | ||
| 26143 | } }, | ||
| 26144 | }, .{ | ||
| 26145 | .required_features = .{ .avx2, null, null, null }, | ||
| 26146 | .src_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .byte } }, .any }, | ||
| 26147 | .dst_constraints = .{.{ .scalar_int = .{ .of = .yword, .is = .word } }}, | ||
| 26148 | .patterns = &.{ | ||
| 26149 | .{ .src = .{ .mem, .none } }, | ||
| 26150 | .{ .src = .{ .to_sse, .none } }, | ||
| 26151 | }, | ||
| 26152 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, | ||
| 26153 | .each = .{ .once = &.{ | ||
| 26154 | .{ ._, .vp_w, .movzxb, .dst0y, .src0x, ._, ._ }, | ||
| 26155 | } }, | ||
| 26156 | }, .{ | ||
| 26157 | .required_features = .{ .avx2, null, null, null }, | ||
| 26158 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .byte } }, .any }, | ||
| 26159 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .word } }}, | ||
| 26160 | .patterns = &.{ | ||
| 26161 | .{ .src = .{ .mem, .none } }, | ||
| 26162 | }, | ||
| 26163 | .extra_temps = .{ | ||
| 26164 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 26165 | .{ .type = .vector_16_i16, .kind = .{ .rc = .sse } }, | ||
| 26166 | .unused, | ||
| 26167 | .unused, | ||
| 26168 | .unused, | ||
| 26169 | .unused, | ||
| 26170 | .unused, | ||
| 26171 | .unused, | ||
| 26172 | .unused, | ||
| 26173 | }, | ||
| 26174 | .dst_temps = .{.mem}, | ||
| 26175 | .each = .{ .once = &.{ | ||
| 26176 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | ||
| 26177 | .{ .@"0:", .vp_w, .movsxb, .tmp1y, .memia(.src0x, .tmp0, .add_size), ._, ._ }, | ||
| 26178 | .{ ._, .v_dqa, .mov, .memsia(.dst0y, .@"2", .tmp0, .add_size), .tmp1y, ._, ._ }, | ||
| 26179 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | ||
| 26180 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 26181 | } }, | ||
| 26182 | }, .{ | ||
| 26183 | .required_features = .{ .avx2, null, null, null }, | ||
| 26184 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .byte } }, .any }, | ||
| 26185 | .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .yword, .is = .word } }}, | ||
| 26186 | .patterns = &.{ | ||
| 26187 | .{ .src = .{ .mem, .none } }, | ||
| 26188 | }, | ||
| 26189 | .extra_temps = .{ | ||
| 26190 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 26191 | .{ .type = .vector_16_u16, .kind = .{ .rc = .sse } }, | ||
| 26192 | .unused, | ||
| 26193 | .unused, | ||
| 26194 | .unused, | ||
| 26195 | .unused, | ||
| 26196 | .unused, | ||
| 26197 | .unused, | ||
| 26198 | .unused, | ||
| 26199 | }, | ||
| 26200 | .dst_temps = .{.mem}, | ||
| 26201 | .each = .{ .once = &.{ | ||
| 26202 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | ||
| 26203 | .{ .@"0:", .vp_w, .movzxb, .tmp1y, .memia(.src0x, .tmp0, .add_size), ._, ._ }, | ||
| 26204 | .{ ._, .v_dqa, .mov, .memsia(.dst0y, .@"2", .tmp0, .add_size), .tmp1y, ._, ._ }, | ||
| 26205 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | ||
| 26206 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 26207 | } }, | ||
| 26208 | }, .{ | ||
| 26209 | .required_features = .{ .avx, null, null, null }, | ||
| 26210 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .byte } }, .any }, | ||
| 26211 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .word } }}, | ||
| 26212 | .patterns = &.{ | ||
| 26213 | .{ .src = .{ .mem, .none } }, | ||
| 26214 | }, | ||
| 26215 | .extra_temps = .{ | ||
| 26216 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 26217 | .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } }, | ||
| 26218 | .unused, | ||
| 26219 | .unused, | ||
| 26220 | .unused, | ||
| 26221 | .unused, | ||
| 26222 | .unused, | ||
| 26223 | .unused, | ||
| 26224 | .unused, | ||
| 26225 | }, | ||
| 26226 | .dst_temps = .{.mem}, | ||
| 26227 | .each = .{ .once = &.{ | ||
| 26228 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | ||
| 26229 | .{ .@"0:", .vp_w, .movsxb, .tmp1x, .memia(.src0q, .tmp0, .add_size), ._, ._ }, | ||
| 26230 | .{ ._, .v_dqa, .mov, .memsia(.dst0x, .@"2", .tmp0, .add_size), .tmp1x, ._, ._ }, | ||
| 26231 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | ||
| 26232 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 26233 | } }, | ||
| 26234 | }, .{ | ||
| 26235 | .required_features = .{ .avx, null, null, null }, | ||
| 26236 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .qword, .is = .byte } }, .any }, | ||
| 26237 | .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .xword, .is = .word } }}, | ||
| 26238 | .patterns = &.{ | ||
| 26239 | .{ .src = .{ .mem, .none } }, | ||
| 26240 | }, | ||
| 26241 | .extra_temps = .{ | ||
| 26242 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 26243 | .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } }, | ||
| 26244 | .unused, | ||
| 26245 | .unused, | ||
| 26246 | .unused, | ||
| 26247 | .unused, | ||
| 26248 | .unused, | ||
| 26249 | .unused, | ||
| 26250 | .unused, | ||
| 26251 | }, | ||
| 26252 | .dst_temps = .{.mem}, | ||
| 26253 | .each = .{ .once = &.{ | ||
| 26254 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | ||
| 26255 | .{ .@"0:", .vp_w, .movzxb, .tmp1x, .memia(.src0q, .tmp0, .add_size), ._, ._ }, | ||
| 26256 | .{ ._, .v_dqa, .mov, .memsia(.dst0x, .@"2", .tmp0, .add_size), .tmp1x, ._, ._ }, | ||
| 26257 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | ||
| 26258 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 26259 | } }, | ||
| 26260 | }, .{ | ||
| 26261 | .required_features = .{ .sse4_1, null, null, null }, | ||
| 26262 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .byte } }, .any }, | ||
| 26263 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .word } }}, | ||
| 26264 | .patterns = &.{ | ||
| 26265 | .{ .src = .{ .mem, .none } }, | ||
| 26266 | }, | ||
| 26267 | .extra_temps = .{ | ||
| 26268 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 26269 | .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } }, | ||
| 26270 | .unused, | ||
| 26271 | .unused, | ||
| 26272 | .unused, | ||
| 26273 | .unused, | ||
| 26274 | .unused, | ||
| 26275 | .unused, | ||
| 26276 | .unused, | ||
| 26277 | }, | ||
| 26278 | .dst_temps = .{.mem}, | ||
| 26279 | .each = .{ .once = &.{ | ||
| 26280 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | ||
| 26281 | .{ .@"0:", .p_w, .movsxb, .tmp1x, .memia(.src0q, .tmp0, .add_size), ._, ._ }, | ||
| 26282 | .{ ._, ._dqa, .mov, .memsia(.dst0x, .@"2", .tmp0, .add_size), .tmp1x, ._, ._ }, | ||
| 26283 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | ||
| 26284 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 26285 | } }, | ||
| 26286 | }, .{ | ||
| 26287 | .required_features = .{ .sse4_1, null, null, null }, | ||
| 26288 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .qword, .is = .byte } }, .any }, | ||
| 26289 | .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .xword, .is = .word } }}, | ||
| 26290 | .patterns = &.{ | ||
| 26291 | .{ .src = .{ .mem, .none } }, | ||
| 26292 | }, | ||
| 26293 | .extra_temps = .{ | ||
| 26294 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 26295 | .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } }, | ||
| 26296 | .unused, | ||
| 26297 | .unused, | ||
| 26298 | .unused, | ||
| 26299 | .unused, | ||
| 26300 | .unused, | ||
| 26301 | .unused, | ||
| 26302 | .unused, | ||
| 26303 | }, | ||
| 26304 | .dst_temps = .{.mem}, | ||
| 26305 | .each = .{ .once = &.{ | ||
| 26306 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | ||
| 26307 | .{ .@"0:", .p_w, .movzxb, .tmp1x, .memia(.src0q, .tmp0, .add_size), ._, ._ }, | ||
| 26308 | .{ ._, ._dqa, .mov, .memsia(.dst0x, .@"2", .tmp0, .add_size), .tmp1x, ._, ._ }, | ||
| 26309 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | ||
| 26310 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 26311 | } }, | ||
| 26312 | }, .{ | ||
| 26313 | .required_features = .{ .slow_incdec, null, null, null }, | ||
| 26314 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any }, | ||
| 26315 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }}, | ||
| 26316 | .patterns = &.{ | ||
| 26317 | .{ .src = .{ .to_mem, .none } }, | ||
| 26318 | }, | ||
| 26319 | .extra_temps = .{ | ||
| 26320 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 26321 | .{ .type = .i16, .kind = .{ .rc = .general_purpose } }, | ||
| 26322 | .unused, | ||
| 26323 | .unused, | ||
| 26324 | .unused, | ||
| 26325 | .unused, | ||
| 26326 | .unused, | ||
| 26327 | .unused, | ||
| 26328 | .unused, | ||
| 26329 | }, | ||
| 26330 | .dst_temps = .{.mem}, | ||
| 26331 | .each = .{ .once = &.{ | ||
| 26332 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | ||
| 26333 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, | ||
| 26334 | .{ ._, ._, .mov, .memsia(.dst0w, .@"2", .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, | ||
| 26335 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, | ||
| 26336 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 26337 | } }, | ||
| 26338 | }, .{ | ||
| 26339 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any }, | ||
| 26340 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }}, | ||
| 26341 | .patterns = &.{ | ||
| 26342 | .{ .src = .{ .to_mem, .none } }, | ||
| 26343 | }, | ||
| 26344 | .extra_temps = .{ | ||
| 26345 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 26346 | .{ .type = .i16, .kind = .{ .rc = .general_purpose } }, | ||
| 26347 | .unused, | ||
| 26348 | .unused, | ||
| 26349 | .unused, | ||
| 26350 | .unused, | ||
| 26351 | .unused, | ||
| 26352 | .unused, | ||
| 26353 | .unused, | ||
| 26354 | }, | ||
| 26355 | .dst_temps = .{.mem}, | ||
| 26356 | .each = .{ .once = &.{ | ||
| 26357 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | ||
| 26358 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, | ||
| 26359 | .{ ._, ._, .mov, .memsia(.dst0w, .@"2", .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, | ||
| 26360 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, | ||
| 26361 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, | ||
| 26362 | } }, | ||
| 26363 | }, .{ | ||
| 26364 | .required_features = .{ .slow_incdec, null, null, null }, | ||
| 26365 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, | ||
| 26366 | .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .word, .is = .word } }}, | ||
| 26367 | .patterns = &.{ | ||
| 26368 | .{ .src = .{ .to_mem, .none } }, | ||
| 26369 | }, | ||
| 26370 | .extra_temps = .{ | ||
| 26371 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 26372 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, | ||
| 26373 | .unused, | ||
| 26374 | .unused, | ||
| 26375 | .unused, | ||
| 26376 | .unused, | ||
| 26377 | .unused, | ||
| 26378 | .unused, | ||
| 26379 | .unused, | ||
| 26380 | }, | ||
| 26381 | .dst_temps = .{.mem}, | ||
| 26382 | .each = .{ .once = &.{ | ||
| 26383 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | ||
| 26384 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, | ||
| 26385 | .{ ._, ._, .mov, .memsia(.dst0w, .@"2", .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, | ||
| 26386 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, | ||
| 26387 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 26388 | } }, | ||
| 26389 | }, .{ | ||
| 26390 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, | ||
| 26391 | .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .word, .is = .word } }}, | ||
| 26392 | .patterns = &.{ | ||
| 26393 | .{ .src = .{ .to_mem, .none } }, | ||
| 26394 | }, | ||
| 26395 | .extra_temps = .{ | ||
| 26396 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 26397 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, | ||
| 26398 | .unused, | ||
| 26399 | .unused, | ||
| 26400 | .unused, | ||
| 26401 | .unused, | ||
| 26402 | .unused, | ||
| 26403 | .unused, | ||
| 26404 | .unused, | ||
| 26405 | }, | ||
| 26406 | .dst_temps = .{.mem}, | ||
| 26407 | .each = .{ .once = &.{ | ||
| 26408 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | ||
| 26409 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, | ||
| 26410 | .{ ._, ._, .mov, .memsia(.dst0w, .@"2", .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, | ||
| 26411 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, | ||
| 26412 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, | ||
| 26413 | } }, | ||
| 26414 | }, .{ | ||
| 26415 | .required_features = .{ .avx, null, null, null }, | ||
| 26416 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .dword, .is = .byte } }, .any }, | ||
| 26417 | .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .xword, .is = .dword } }}, | ||
| 26418 | .patterns = &.{ | ||
| 26419 | .{ .src = .{ .mem, .none } }, | ||
| 26420 | .{ .src = .{ .to_sse, .none } }, | ||
| 26421 | }, | ||
| 26422 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, | ||
| 26423 | .each = .{ .once = &.{ | ||
| 26424 | .{ ._, .vp_d, .movsxb, .dst0x, .src0d, ._, ._ }, | ||
| 26425 | } }, | ||
| 26426 | }, .{ | ||
| 26427 | .required_features = .{ .avx, null, null, null }, | ||
| 26428 | .src_constraints = .{ .{ .scalar_int = .{ .of = .dword, .is = .byte } }, .any }, | ||
| 26429 | .dst_constraints = .{.{ .scalar_int = .{ .of = .xword, .is = .dword } }}, | ||
| 26430 | .patterns = &.{ | ||
| 26431 | .{ .src = .{ .mem, .none } }, | ||
| 26432 | .{ .src = .{ .to_sse, .none } }, | ||
| 26433 | }, | ||
| 26434 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, | ||
| 26435 | .each = .{ .once = &.{ | ||
| 26436 | .{ ._, .vp_d, .movzxb, .dst0x, .src0d, ._, ._ }, | ||
| 26437 | } }, | ||
| 26438 | }, .{ | ||
| 26439 | .required_features = .{ .sse4_1, null, null, null }, | ||
| 26440 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .dword, .is = .byte } }, .any }, | ||
| 26441 | .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .xword, .is = .dword } }}, | ||
| 26442 | .patterns = &.{ | ||
| 26443 | .{ .src = .{ .mem, .none } }, | ||
| 26444 | .{ .src = .{ .to_sse, .none } }, | ||
| 26445 | }, | ||
| 26446 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, | ||
| 26447 | .each = .{ .once = &.{ | ||
| 26448 | .{ ._, .p_d, .movsxb, .dst0x, .src0d, ._, ._ }, | ||
| 26449 | } }, | ||
| 26450 | }, .{ | ||
| 26451 | .required_features = .{ .sse4_1, null, null, null }, | ||
| 26452 | .src_constraints = .{ .{ .scalar_int = .{ .of = .dword, .is = .byte } }, .any }, | ||
| 26453 | .dst_constraints = .{.{ .scalar_int = .{ .of = .xword, .is = .dword } }}, | ||
| 26454 | .patterns = &.{ | ||
| 26455 | .{ .src = .{ .mem, .none } }, | ||
| 26456 | .{ .src = .{ .to_sse, .none } }, | ||
| 26457 | }, | ||
| 26458 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, | ||
| 26459 | .each = .{ .once = &.{ | ||
| 26460 | .{ ._, .p_d, .movzxb, .dst0x, .src0d, ._, ._ }, | ||
| 26461 | } }, | ||
| 26462 | }, .{ | ||
| 26463 | .required_features = .{ .sse2, null, null, null }, | ||
| 26464 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .dword, .is = .byte } }, .any }, | ||
| 26465 | .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .xword, .is = .dword } }}, | ||
| 26466 | .patterns = &.{ | ||
| 26467 | .{ .src = .{ .to_mut_sse, .none } }, | ||
| 26468 | }, | ||
| 26469 | .extra_temps = .{ | ||
| 26470 | .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } }, | ||
| 26471 | .unused, | ||
| 26472 | .unused, | ||
| 26473 | .unused, | ||
| 26474 | .unused, | ||
| 26475 | .unused, | ||
| 26476 | .unused, | ||
| 26477 | .unused, | ||
| 26478 | .unused, | ||
| 26479 | }, | ||
| 26480 | .dst_temps = .{.{ .ref = .src0 }}, | ||
| 26481 | .each = .{ .once = &.{ | ||
| 26482 | .{ ._, .p_, .xor, .tmp0x, .tmp0x, ._, ._ }, | ||
| 26483 | .{ ._, .p_b, .cmpgt, .tmp0x, .src0x, ._, ._ }, | ||
| 26484 | .{ ._, .p_, .unpcklbw, .dst0x, .tmp0x, ._, ._ }, | ||
| 26485 | .{ ._, .p_, .unpcklbw, .tmp0x, .tmp0x, ._, ._ }, | ||
| 26486 | .{ ._, .p_, .unpcklwd, .dst0x, .tmp0x, ._, ._ }, | ||
| 26487 | } }, | ||
| 26488 | }, .{ | ||
| 26489 | .required_features = .{ .sse2, null, null, null }, | ||
| 26490 | .src_constraints = .{ .{ .scalar_int = .{ .of = .dword, .is = .byte } }, .any }, | ||
| 26491 | .dst_constraints = .{.{ .scalar_int = .{ .of = .xword, .is = .dword } }}, | ||
| 26492 | .patterns = &.{ | ||
| 26493 | .{ .src = .{ .to_mut_sse, .none } }, | ||
| 26494 | }, | ||
| 26495 | .extra_temps = .{ | ||
| 26496 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, | ||
| 26497 | .unused, | ||
| 26498 | .unused, | ||
| 26499 | .unused, | ||
| 26500 | .unused, | ||
| 26501 | .unused, | ||
| 26502 | .unused, | ||
| 26503 | .unused, | ||
| 26504 | .unused, | ||
| 26505 | }, | ||
| 26506 | .dst_temps = .{.{ .ref = .src0 }}, | ||
| 26507 | .each = .{ .once = &.{ | ||
| 26508 | .{ ._, .p_, .xor, .tmp0x, .tmp0x, ._, ._ }, | ||
| 26509 | .{ ._, .p_, .unpcklbw, .dst0x, .tmp0x, ._, ._ }, | ||
| 26510 | .{ ._, .p_, .unpcklwd, .dst0x, .tmp0x, ._, ._ }, | ||
| 26511 | } }, | ||
| 26512 | }, .{ | ||
| 26513 | .required_features = .{ .avx2, null, null, null }, | ||
| 26514 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .qword, .is = .byte } }, .any }, | ||
| 26515 | .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .yword, .is = .dword } }}, | ||
| 26516 | .patterns = &.{ | ||
| 26517 | .{ .src = .{ .mem, .none } }, | ||
| 26518 | .{ .src = .{ .to_sse, .none } }, | ||
| 26519 | }, | ||
| 26520 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, | ||
| 26521 | .each = .{ .once = &.{ | ||
| 26522 | .{ ._, .vp_d, .movsxb, .dst0y, .src0q, ._, ._ }, | ||
| 26523 | } }, | ||
| 26524 | }, .{ | ||
| 26525 | .required_features = .{ .avx2, null, null, null }, | ||
| 26526 | .src_constraints = .{ .{ .scalar_int = .{ .of = .qword, .is = .byte } }, .any }, | ||
| 26527 | .dst_constraints = .{.{ .scalar_int = .{ .of = .yword, .is = .dword } }}, | ||
| 26528 | .patterns = &.{ | ||
| 26529 | .{ .src = .{ .mem, .none } }, | ||
| 26530 | .{ .src = .{ .to_sse, .none } }, | ||
| 26531 | }, | ||
| 26532 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, | ||
| 26533 | .each = .{ .once = &.{ | ||
| 26534 | .{ ._, .vp_d, .movzxb, .dst0y, .src0q, ._, ._ }, | ||
| 26535 | } }, | ||
| 26536 | }, .{ | ||
| 26537 | .required_features = .{ .avx2, null, null, null }, | ||
| 26538 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .byte } }, .any }, | ||
| 26539 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .dword } }}, | ||
| 26540 | .patterns = &.{ | ||
| 26541 | .{ .src = .{ .mem, .none } }, | ||
| 26542 | }, | ||
| 26543 | .extra_temps = .{ | ||
| 26544 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 26545 | .{ .type = .vector_8_i32, .kind = .{ .rc = .sse } }, | ||
| 26546 | .unused, | ||
| 26547 | .unused, | ||
| 26548 | .unused, | ||
| 26549 | .unused, | ||
| 26550 | .unused, | ||
| 26551 | .unused, | ||
| 26552 | .unused, | ||
| 26553 | }, | ||
| 26554 | .dst_temps = .{.mem}, | ||
| 26555 | .each = .{ .once = &.{ | ||
| 26556 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | ||
| 26557 | .{ .@"0:", .vp_d, .movsxb, .tmp1y, .memia(.src0q, .tmp0, .add_size), ._, ._ }, | ||
| 26558 | .{ ._, .v_dqa, .mov, .memsia(.dst0y, .@"4", .tmp0, .add_size), .tmp1y, ._, ._ }, | ||
| 26559 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | ||
| 26560 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 26561 | } }, | ||
| 26562 | }, .{ | ||
| 26563 | .required_features = .{ .avx2, null, null, null }, | ||
| 26564 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .qword, .is = .byte } }, .any }, | ||
| 26565 | .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .yword, .is = .dword } }}, | ||
| 26566 | .patterns = &.{ | ||
| 26567 | .{ .src = .{ .mem, .none } }, | ||
| 26568 | }, | ||
| 26569 | .extra_temps = .{ | ||
| 26570 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 26571 | .{ .type = .vector_8_u32, .kind = .{ .rc = .sse } }, | ||
| 26572 | .unused, | ||
| 26573 | .unused, | ||
| 26574 | .unused, | ||
| 26575 | .unused, | ||
| 26576 | .unused, | ||
| 26577 | .unused, | ||
| 26578 | .unused, | ||
| 26579 | }, | ||
| 26580 | .dst_temps = .{.mem}, | ||
| 26581 | .each = .{ .once = &.{ | ||
| 26582 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | ||
| 26583 | .{ .@"0:", .vp_d, .movzxb, .tmp1y, .memia(.src0x, .tmp0, .add_size), ._, ._ }, | ||
| 26584 | .{ ._, .v_dqa, .mov, .memsia(.dst0y, .@"4", .tmp0, .add_size), .tmp1y, ._, ._ }, | ||
| 26585 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | ||
| 26586 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 26587 | } }, | ||
| 26588 | }, .{ | ||
| 26589 | .required_features = .{ .avx, null, null, null }, | ||
| 26590 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .byte } }, .any }, | ||
| 26591 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }}, | ||
| 26592 | .patterns = &.{ | ||
| 26593 | .{ .src = .{ .mem, .none } }, | ||
| 26594 | }, | ||
| 26595 | .extra_temps = .{ | ||
| 26596 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 26597 | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, | ||
| 26598 | .unused, | ||
| 26599 | .unused, | ||
| 26600 | .unused, | ||
| 26601 | .unused, | ||
| 26602 | .unused, | ||
| 26603 | .unused, | ||
| 26604 | .unused, | ||
| 26605 | }, | ||
| 26606 | .dst_temps = .{.mem}, | ||
| 26607 | .each = .{ .once = &.{ | ||
| 26608 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | ||
| 26609 | .{ .@"0:", .vp_d, .movsxb, .tmp1x, .memia(.src0d, .tmp0, .add_size), ._, ._ }, | ||
| 26610 | .{ ._, .v_dqa, .mov, .memsia(.dst0x, .@"4", .tmp0, .add_size), .tmp1x, ._, ._ }, | ||
| 26611 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | ||
| 26612 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 26613 | } }, | ||
| 26614 | }, .{ | ||
| 26615 | .required_features = .{ .avx, null, null, null }, | ||
| 26616 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .dword, .is = .byte } }, .any }, | ||
| 26617 | .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .xword, .is = .dword } }}, | ||
| 26618 | .patterns = &.{ | ||
| 26619 | .{ .src = .{ .mem, .none } }, | ||
| 26620 | }, | ||
| 26621 | .extra_temps = .{ | ||
| 26622 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 26623 | .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } }, | ||
| 26624 | .unused, | ||
| 26625 | .unused, | ||
| 26626 | .unused, | ||
| 26627 | .unused, | ||
| 26628 | .unused, | ||
| 26629 | .unused, | ||
| 26630 | .unused, | ||
| 26631 | }, | ||
| 26632 | .dst_temps = .{.mem}, | ||
| 26633 | .each = .{ .once = &.{ | ||
| 26634 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | ||
| 26635 | .{ .@"0:", .vp_d, .movzxb, .tmp1x, .memia(.src0d, .tmp0, .add_size), ._, ._ }, | ||
| 26636 | .{ ._, .v_dqa, .mov, .memsia(.dst0x, .@"4", .tmp0, .add_size), .tmp1x, ._, ._ }, | ||
| 26637 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | ||
| 26638 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 26639 | } }, | ||
| 26640 | }, .{ | ||
| 26641 | .required_features = .{ .sse4_1, null, null, null }, | ||
| 26642 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .byte } }, .any }, | ||
| 26643 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }}, | ||
| 26644 | .patterns = &.{ | ||
| 26645 | .{ .src = .{ .mem, .none } }, | ||
| 26646 | }, | ||
| 26647 | .extra_temps = .{ | ||
| 26648 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 26649 | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, | ||
| 26650 | .unused, | ||
| 26651 | .unused, | ||
| 26652 | .unused, | ||
| 26653 | .unused, | ||
| 26654 | .unused, | ||
| 26655 | .unused, | ||
| 26656 | .unused, | ||
| 26657 | }, | ||
| 26658 | .dst_temps = .{.mem}, | ||
| 26659 | .each = .{ .once = &.{ | ||
| 26660 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | ||
| 26661 | .{ .@"0:", .p_d, .movsxb, .tmp1x, .memia(.src0d, .tmp0, .add_size), ._, ._ }, | ||
| 26662 | .{ ._, ._dqa, .mov, .memsia(.dst0x, .@"4", .tmp0, .add_size), .tmp1x, ._, ._ }, | ||
| 26663 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | ||
| 26664 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 26665 | } }, | ||
| 26666 | }, .{ | ||
| 26667 | .required_features = .{ .sse4_1, null, null, null }, | ||
| 26668 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .dword, .is = .byte } }, .any }, | ||
| 26669 | .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .xword, .is = .dword } }}, | ||
| 26670 | .patterns = &.{ | ||
| 26671 | .{ .src = .{ .mem, .none } }, | ||
| 26672 | }, | ||
| 26673 | .extra_temps = .{ | ||
| 26674 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 26675 | .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } }, | ||
| 26676 | .unused, | ||
| 26677 | .unused, | ||
| 26678 | .unused, | ||
| 26679 | .unused, | ||
| 26680 | .unused, | ||
| 26681 | .unused, | ||
| 26682 | .unused, | ||
| 26683 | }, | ||
| 26684 | .dst_temps = .{.mem}, | ||
| 26685 | .each = .{ .once = &.{ | ||
| 26686 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | ||
| 26687 | .{ .@"0:", .p_d, .movzxb, .tmp1x, .memia(.src0d, .tmp0, .add_size), ._, ._ }, | ||
| 26688 | .{ ._, ._dqa, .mov, .memsia(.dst0x, .@"4", .tmp0, .add_size), .tmp1x, ._, ._ }, | ||
| 26689 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | ||
| 26690 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 26691 | } }, | ||
| 26692 | }, .{ | ||
| 26693 | .required_features = .{ .slow_incdec, null, null, null }, | ||
| 26694 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any }, | ||
| 26695 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }}, | ||
| 26696 | .patterns = &.{ | ||
| 26697 | .{ .src = .{ .to_mem, .none } }, | ||
| 26698 | }, | ||
| 26699 | .extra_temps = .{ | ||
| 26700 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 26701 | .{ .type = .i32, .kind = .{ .rc = .general_purpose } }, | ||
| 26702 | .unused, | ||
| 26703 | .unused, | ||
| 26704 | .unused, | ||
| 26705 | .unused, | ||
| 26706 | .unused, | ||
| 26707 | .unused, | ||
| 26708 | .unused, | ||
| 26709 | }, | ||
| 26710 | .dst_temps = .{.mem}, | ||
| 26711 | .each = .{ .once = &.{ | ||
| 26712 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | ||
| 26713 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, | ||
| 26714 | .{ ._, ._, .mov, .memsia(.dst0d, .@"4", .tmp0, .add_unaligned_size), .tmp1d, ._, ._ }, | ||
| 26715 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, | ||
| 26716 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 26717 | } }, | ||
| 26718 | }, .{ | ||
| 26719 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any }, | ||
| 26720 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }}, | ||
| 26721 | .patterns = &.{ | ||
| 26722 | .{ .src = .{ .to_mem, .none } }, | ||
| 26723 | }, | ||
| 26724 | .extra_temps = .{ | ||
| 26725 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 26726 | .{ .type = .i32, .kind = .{ .rc = .general_purpose } }, | ||
| 26727 | .unused, | ||
| 26728 | .unused, | ||
| 26729 | .unused, | ||
| 26730 | .unused, | ||
| 26731 | .unused, | ||
| 26732 | .unused, | ||
| 26733 | .unused, | ||
| 26734 | }, | ||
| 26735 | .dst_temps = .{.mem}, | ||
| 26736 | .each = .{ .once = &.{ | ||
| 26737 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | ||
| 26738 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, | ||
| 26739 | .{ ._, ._, .mov, .memsia(.dst0d, .@"4", .tmp0, .add_unaligned_size), .tmp1d, ._, ._ }, | ||
| 26740 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, | ||
| 26741 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, | ||
| 26742 | } }, | ||
| 26743 | }, .{ | ||
| 26744 | .required_features = .{ .slow_incdec, null, null, null }, | ||
| 26745 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, | ||
| 26746 | .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .dword, .is = .dword } }}, | ||
| 26747 | .patterns = &.{ | ||
| 26748 | .{ .src = .{ .to_mem, .none } }, | ||
| 26749 | }, | ||
| 26750 | .extra_temps = .{ | ||
| 26751 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 26752 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | ||
| 26753 | .unused, | ||
| 26754 | .unused, | ||
| 26755 | .unused, | ||
| 26756 | .unused, | ||
| 26757 | .unused, | ||
| 26758 | .unused, | ||
| 26759 | .unused, | ||
| 26760 | }, | ||
| 26761 | .dst_temps = .{.mem}, | ||
| 26762 | .each = .{ .once = &.{ | ||
| 26763 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | ||
| 26764 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, | ||
| 26765 | .{ ._, ._, .mov, .memsia(.dst0d, .@"4", .tmp0, .add_unaligned_size), .tmp1d, ._, ._ }, | ||
| 26766 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, | ||
| 26767 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 26768 | } }, | ||
| 26769 | }, .{ | ||
| 26770 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, | ||
| 26771 | .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .dword, .is = .dword } }}, | ||
| 26772 | .patterns = &.{ | ||
| 26773 | .{ .src = .{ .to_mem, .none } }, | ||
| 26774 | }, | ||
| 26775 | .extra_temps = .{ | ||
| 26776 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 26777 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | ||
| 26778 | .unused, | ||
| 26779 | .unused, | ||
| 26780 | .unused, | ||
| 26781 | .unused, | ||
| 26782 | .unused, | ||
| 26783 | .unused, | ||
| 26784 | .unused, | ||
| 26785 | }, | ||
| 26786 | .dst_temps = .{.mem}, | ||
| 26787 | .each = .{ .once = &.{ | ||
| 26788 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | ||
| 26789 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, | ||
| 26790 | .{ ._, ._, .mov, .memsia(.dst0d, .@"4", .tmp0, .add_unaligned_size), .tmp1d, ._, ._ }, | ||
| 26791 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, | ||
| 26792 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, | ||
| 26793 | } }, | ||
| 26794 | }, .{ | ||
| 26795 | .required_features = .{ .avx, null, null, null }, | ||
| 26796 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .word, .is = .byte } }, .any }, | ||
| 26797 | .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .xword, .is = .qword } }}, | ||
| 26798 | .patterns = &.{ | ||
| 26799 | .{ .src = .{ .mem, .none } }, | ||
| 26800 | .{ .src = .{ .to_sse, .none } }, | ||
| 26801 | }, | ||
| 26802 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, | ||
| 26803 | .each = .{ .once = &.{ | ||
| 26804 | .{ ._, .vp_q, .movsxb, .dst0x, .src0w, ._, ._ }, | ||
| 26805 | } }, | ||
| 26806 | }, .{ | ||
| 26807 | .required_features = .{ .avx, null, null, null }, | ||
| 26808 | .src_constraints = .{ .{ .scalar_int = .{ .of = .word, .is = .byte } }, .any }, | ||
| 26809 | .dst_constraints = .{.{ .scalar_int = .{ .of = .xword, .is = .qword } }}, | ||
| 26810 | .patterns = &.{ | ||
| 26811 | .{ .src = .{ .mem, .none } }, | ||
| 26812 | .{ .src = .{ .to_sse, .none } }, | ||
| 26813 | }, | ||
| 26814 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, | ||
| 26815 | .each = .{ .once = &.{ | ||
| 26816 | .{ ._, .vp_q, .movzxb, .dst0x, .src0w, ._, ._ }, | ||
| 26817 | } }, | ||
| 26818 | }, .{ | ||
| 26819 | .required_features = .{ .sse4_1, null, null, null }, | ||
| 26820 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .word, .is = .byte } }, .any }, | ||
| 26821 | .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .xword, .is = .qword } }}, | ||
| 26822 | .patterns = &.{ | ||
| 26823 | .{ .src = .{ .mem, .none } }, | ||
| 26824 | .{ .src = .{ .to_sse, .none } }, | ||
| 26825 | }, | ||
| 26826 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, | ||
| 26827 | .each = .{ .once = &.{ | ||
| 26828 | .{ ._, .p_q, .movsxb, .dst0x, .src0w, ._, ._ }, | ||
| 26829 | } }, | ||
| 26830 | }, .{ | ||
| 26831 | .required_features = .{ .sse4_1, null, null, null }, | ||
| 26832 | .src_constraints = .{ .{ .scalar_int = .{ .of = .word, .is = .byte } }, .any }, | ||
| 26833 | .dst_constraints = .{.{ .scalar_int = .{ .of = .xword, .is = .qword } }}, | ||
| 26834 | .patterns = &.{ | ||
| 26835 | .{ .src = .{ .mem, .none } }, | ||
| 26836 | .{ .src = .{ .to_sse, .none } }, | ||
| 26837 | }, | ||
| 26838 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, | ||
| 26839 | .each = .{ .once = &.{ | ||
| 26840 | .{ ._, .p_q, .movzxb, .dst0x, .src0w, ._, ._ }, | ||
| 26841 | } }, | ||
| 26842 | }, .{ | ||
| 26843 | .required_features = .{ .sse2, null, null, null }, | ||
| 26844 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .word, .is = .byte } }, .any }, | ||
| 26845 | .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .xword, .is = .qword } }}, | ||
| 26846 | .patterns = &.{ | ||
| 26847 | .{ .src = .{ .to_mut_sse, .none } }, | ||
| 26848 | }, | ||
| 26849 | .extra_temps = .{ | ||
| 26850 | .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } }, | ||
| 26851 | .unused, | ||
| 26852 | .unused, | ||
| 26853 | .unused, | ||
| 26854 | .unused, | ||
| 26855 | .unused, | ||
| 26856 | .unused, | ||
| 26857 | .unused, | ||
| 26858 | .unused, | ||
| 26859 | }, | ||
| 26860 | .dst_temps = .{.{ .ref = .src0 }}, | ||
| 26861 | .each = .{ .once = &.{ | ||
| 26862 | .{ ._, .p_, .xor, .tmp0x, .tmp0x, ._, ._ }, | ||
| 26863 | .{ ._, .p_b, .cmpgt, .tmp0x, .src0x, ._, ._ }, | ||
| 26864 | .{ ._, .p_, .unpcklbw, .dst0x, .tmp0x, ._, ._ }, | ||
| 26865 | .{ ._, .p_, .unpcklbw, .tmp0x, .tmp0x, ._, ._ }, | ||
| 26866 | .{ ._, .p_, .unpcklwd, .dst0x, .tmp0x, ._, ._ }, | ||
| 26867 | .{ ._, .p_, .unpcklwd, .tmp0x, .tmp0x, ._, ._ }, | ||
| 26868 | .{ ._, .p_, .unpckldq, .dst0x, .tmp0x, ._, ._ }, | ||
| 26869 | } }, | ||
| 26870 | }, .{ | ||
| 26871 | .required_features = .{ .sse2, null, null, null }, | ||
| 26872 | .src_constraints = .{ .{ .scalar_int = .{ .of = .word, .is = .byte } }, .any }, | ||
| 26873 | .dst_constraints = .{.{ .scalar_int = .{ .of = .xword, .is = .qword } }}, | ||
| 26874 | .patterns = &.{ | ||
| 26875 | .{ .src = .{ .to_mut_sse, .none } }, | ||
| 26876 | }, | ||
| 26877 | .extra_temps = .{ | ||
| 26878 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, | ||
| 26879 | .unused, | ||
| 26880 | .unused, | ||
| 26881 | .unused, | ||
| 26882 | .unused, | ||
| 26883 | .unused, | ||
| 26884 | .unused, | ||
| 26885 | .unused, | ||
| 26886 | .unused, | ||
| 26887 | }, | ||
| 26888 | .dst_temps = .{.{ .ref = .src0 }}, | ||
| 26889 | .each = .{ .once = &.{ | ||
| 26890 | .{ ._, .p_, .xor, .tmp0x, .tmp0x, ._, ._ }, | ||
| 26891 | .{ ._, .p_, .unpcklbw, .dst0x, .tmp0x, ._, ._ }, | ||
| 26892 | .{ ._, .p_, .unpcklwd, .dst0x, .tmp0x, ._, ._ }, | ||
| 26893 | .{ ._, .p_, .unpckldq, .dst0x, .tmp0x, ._, ._ }, | ||
| 26894 | } }, | ||
| 26895 | }, .{ | ||
| 26896 | .required_features = .{ .avx2, null, null, null }, | ||
| 26897 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .dword, .is = .byte } }, .any }, | ||
| 26898 | .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .yword, .is = .qword } }}, | ||
| 26899 | .patterns = &.{ | ||
| 26900 | .{ .src = .{ .mem, .none } }, | ||
| 26901 | .{ .src = .{ .to_sse, .none } }, | ||
| 26902 | }, | ||
| 26903 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, | ||
| 26904 | .each = .{ .once = &.{ | ||
| 26905 | .{ ._, .vp_q, .movsxb, .dst0y, .src0d, ._, ._ }, | ||
| 26906 | } }, | ||
| 26907 | }, .{ | ||
| 26908 | .required_features = .{ .avx2, null, null, null }, | ||
| 26909 | .src_constraints = .{ .{ .scalar_int = .{ .of = .dword, .is = .byte } }, .any }, | ||
| 26910 | .dst_constraints = .{.{ .scalar_int = .{ .of = .yword, .is = .qword } }}, | ||
| 26911 | .patterns = &.{ | ||
| 26912 | .{ .src = .{ .mem, .none } }, | ||
| 26913 | .{ .src = .{ .to_sse, .none } }, | ||
| 26914 | }, | ||
| 26915 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, | ||
| 26916 | .each = .{ .once = &.{ | ||
| 26917 | .{ ._, .vp_q, .movzxb, .dst0y, .src0d, ._, ._ }, | ||
| 26918 | } }, | ||
| 26919 | }, .{ | ||
| 26920 | .required_features = .{ .avx2, null, null, null }, | ||
| 26921 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .byte } }, .any }, | ||
| 26922 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .qword } }}, | ||
| 26923 | .patterns = &.{ | ||
| 26924 | .{ .src = .{ .mem, .none } }, | ||
| 26925 | }, | ||
| 26926 | .extra_temps = .{ | ||
| 26927 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 26928 | .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } }, | ||
| 26929 | .unused, | ||
| 26930 | .unused, | ||
| 26931 | .unused, | ||
| 26932 | .unused, | ||
| 26933 | .unused, | ||
| 26934 | .unused, | ||
| 26935 | .unused, | ||
| 26936 | }, | ||
| 26937 | .dst_temps = .{.mem}, | ||
| 26938 | .each = .{ .once = &.{ | ||
| 26939 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | ||
| 26940 | .{ .@"0:", .vp_q, .movsxb, .tmp1y, .memia(.src0d, .tmp0, .add_size), ._, ._ }, | ||
| 26941 | .{ ._, .v_dqa, .mov, .memsia(.dst0y, .@"8", .tmp0, .add_size), .tmp1y, ._, ._ }, | ||
| 26942 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | ||
| 26943 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 26944 | } }, | ||
| 26945 | }, .{ | ||
| 26946 | .required_features = .{ .avx2, null, null, null }, | ||
| 26947 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .dword, .is = .byte } }, .any }, | ||
| 26948 | .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .yword, .is = .qword } }}, | ||
| 26949 | .patterns = &.{ | ||
| 26950 | .{ .src = .{ .mem, .none } }, | ||
| 26951 | }, | ||
| 26952 | .extra_temps = .{ | ||
| 26953 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 26954 | .{ .type = .vector_4_u64, .kind = .{ .rc = .sse } }, | ||
| 26955 | .unused, | ||
| 26956 | .unused, | ||
| 26957 | .unused, | ||
| 26958 | .unused, | ||
| 26959 | .unused, | ||
| 26960 | .unused, | ||
| 26961 | .unused, | ||
| 26962 | }, | ||
| 26963 | .dst_temps = .{.mem}, | ||
| 26964 | .each = .{ .once = &.{ | ||
| 26965 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | ||
| 26966 | .{ .@"0:", .vp_q, .movzxb, .tmp1y, .memia(.src0d, .tmp0, .add_size), ._, ._ }, | ||
| 26967 | .{ ._, .v_dqa, .mov, .memsia(.dst0y, .@"8", .tmp0, .add_size), .tmp1y, ._, ._ }, | ||
| 26968 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | ||
| 26969 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 26970 | } }, | ||
| 26971 | }, .{ | ||
| 26972 | .required_features = .{ .avx, null, null, null }, | ||
| 26973 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .byte } }, .any }, | ||
| 26974 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .qword } }}, | ||
| 26975 | .patterns = &.{ | ||
| 26976 | .{ .src = .{ .mem, .none } }, | ||
| 26977 | }, | ||
| 26978 | .extra_temps = .{ | ||
| 26979 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 26980 | .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } }, | ||
| 26981 | .unused, | ||
| 26982 | .unused, | ||
| 26983 | .unused, | ||
| 26984 | .unused, | ||
| 26985 | .unused, | ||
| 26986 | .unused, | ||
| 26987 | .unused, | ||
| 26988 | }, | ||
| 26989 | .dst_temps = .{.mem}, | ||
| 26990 | .each = .{ .once = &.{ | ||
| 26991 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | ||
| 26992 | .{ .@"0:", .vp_q, .movsxb, .tmp1x, .memia(.src0w, .tmp0, .add_size), ._, ._ }, | ||
| 26993 | .{ ._, .v_dqa, .mov, .memsia(.dst0x, .@"8", .tmp0, .add_size), .tmp1x, ._, ._ }, | ||
| 26994 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | ||
| 26995 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 26996 | } }, | ||
| 26997 | }, .{ | ||
| 26998 | .required_features = .{ .avx, null, null, null }, | ||
| 26999 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .byte } }, .any }, | ||
| 27000 | .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .xword, .is = .qword } }}, | ||
| 27001 | .patterns = &.{ | ||
| 27002 | .{ .src = .{ .mem, .none } }, | ||
| 27003 | }, | ||
| 27004 | .extra_temps = .{ | ||
| 27005 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 27006 | .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } }, | ||
| 27007 | .unused, | ||
| 27008 | .unused, | ||
| 27009 | .unused, | ||
| 27010 | .unused, | ||
| 27011 | .unused, | ||
| 27012 | .unused, | ||
| 27013 | .unused, | ||
| 27014 | }, | ||
| 27015 | .dst_temps = .{.mem}, | ||
| 27016 | .each = .{ .once = &.{ | ||
| 27017 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | ||
| 27018 | .{ .@"0:", .vp_q, .movzxb, .tmp1x, .memia(.src0w, .tmp0, .add_size), ._, ._ }, | ||
| 27019 | .{ ._, .v_dqa, .mov, .memsia(.dst0x, .@"8", .tmp0, .add_size), .tmp1x, ._, ._ }, | ||
| 27020 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | ||
| 27021 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 27022 | } }, | ||
| 27023 | }, .{ | ||
| 27024 | .required_features = .{ .sse4_1, null, null, null }, | ||
| 27025 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .byte } }, .any }, | ||
| 27026 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .qword } }}, | ||
| 27027 | .patterns = &.{ | ||
| 27028 | .{ .src = .{ .mem, .none } }, | ||
| 27029 | }, | ||
| 27030 | .extra_temps = .{ | ||
| 27031 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 27032 | .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } }, | ||
| 27033 | .unused, | ||
| 27034 | .unused, | ||
| 27035 | .unused, | ||
| 27036 | .unused, | ||
| 27037 | .unused, | ||
| 27038 | .unused, | ||
| 27039 | .unused, | ||
| 27040 | }, | ||
| 27041 | .dst_temps = .{.mem}, | ||
| 27042 | .each = .{ .once = &.{ | ||
| 27043 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | ||
| 27044 | .{ .@"0:", .p_q, .movsxb, .tmp1x, .memia(.src0w, .tmp0, .add_size), ._, ._ }, | ||
| 27045 | .{ ._, ._dqa, .mov, .memsia(.dst0x, .@"8", .tmp0, .add_size), .tmp1x, ._, ._ }, | ||
| 27046 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | ||
| 27047 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 27048 | } }, | ||
| 27049 | }, .{ | ||
| 27050 | .required_features = .{ .sse4_1, null, null, null }, | ||
| 27051 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .byte } }, .any }, | ||
| 27052 | .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .xword, .is = .qword } }}, | ||
| 27053 | .patterns = &.{ | ||
| 27054 | .{ .src = .{ .mem, .none } }, | ||
| 27055 | }, | ||
| 27056 | .extra_temps = .{ | ||
| 27057 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 27058 | .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } }, | ||
| 27059 | .unused, | ||
| 27060 | .unused, | ||
| 27061 | .unused, | ||
| 27062 | .unused, | ||
| 27063 | .unused, | ||
| 27064 | .unused, | ||
| 27065 | .unused, | ||
| 27066 | }, | ||
| 27067 | .dst_temps = .{.mem}, | ||
| 27068 | .each = .{ .once = &.{ | ||
| 27069 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | ||
| 27070 | .{ .@"0:", .p_q, .movzxb, .tmp1x, .memia(.src0w, .tmp0, .add_size), ._, ._ }, | ||
| 27071 | .{ ._, ._dqa, .mov, .memsia(.dst0x, .@"8", .tmp0, .add_size), .tmp1x, ._, ._ }, | ||
| 27072 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | ||
| 27073 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 27074 | } }, | ||
| 27075 | }, .{ | ||
| 27076 | .required_features = .{ .@"64bit", .slow_incdec, null, null }, | ||
| 27077 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any }, | ||
| 27078 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }}, | ||
| 27079 | .patterns = &.{ | ||
| 27080 | .{ .src = .{ .to_mem, .none } }, | ||
| 27081 | }, | ||
| 27082 | .extra_temps = .{ | ||
| 27083 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 27084 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, | ||
| 27085 | .unused, | ||
| 27086 | .unused, | ||
| 27087 | .unused, | ||
| 27088 | .unused, | ||
| 27089 | .unused, | ||
| 27090 | .unused, | ||
| 27091 | .unused, | ||
| 27092 | }, | ||
| 27093 | .dst_temps = .{.mem}, | ||
| 27094 | .each = .{ .once = &.{ | ||
| 27095 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | ||
| 27096 | .{ .@"0:", ._, .movsx, .tmp1q, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, | ||
| 27097 | .{ ._, ._, .mov, .memsia(.dst0q, .@"8", .tmp0, .add_unaligned_size), .tmp1q, ._, ._ }, | ||
| 27098 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, | ||
| 27099 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 27100 | } }, | ||
| 27101 | }, .{ | ||
| 27102 | .required_features = .{ .@"64bit", null, null, null }, | ||
| 27103 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any }, | ||
| 27104 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }}, | ||
| 27105 | .patterns = &.{ | ||
| 27106 | .{ .src = .{ .to_mem, .none } }, | ||
| 27107 | }, | ||
| 27108 | .extra_temps = .{ | ||
| 27109 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 27110 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, | ||
| 27111 | .unused, | ||
| 27112 | .unused, | ||
| 27113 | .unused, | ||
| 27114 | .unused, | ||
| 27115 | .unused, | ||
| 27116 | .unused, | ||
| 27117 | .unused, | ||
| 27118 | }, | ||
| 27119 | .dst_temps = .{.mem}, | ||
| 27120 | .each = .{ .once = &.{ | ||
| 27121 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | ||
| 27122 | .{ .@"0:", ._, .movsx, .tmp1q, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, | ||
| 27123 | .{ ._, ._, .mov, .memsia(.dst0q, .@"8", .tmp0, .add_unaligned_size), .tmp1q, ._, ._ }, | ||
| 27124 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, | ||
| 27125 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, | ||
| 27126 | } }, | ||
| 27127 | }, .{ | ||
| 27128 | .required_features = .{ .slow_incdec, null, null, null }, | ||
| 27129 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, | ||
| 27130 | .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .qword, .is = .qword } }}, | ||
| 27131 | .patterns = &.{ | ||
| 27132 | .{ .src = .{ .to_mem, .none } }, | ||
| 27133 | }, | ||
| 27134 | .extra_temps = .{ | ||
| 27135 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 27136 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | ||
| 27137 | .unused, | ||
| 27138 | .unused, | ||
| 27139 | .unused, | ||
| 27140 | .unused, | ||
| 27141 | .unused, | ||
| 27142 | .unused, | ||
| 27143 | .unused, | ||
| 27144 | }, | ||
| 27145 | .dst_temps = .{.mem}, | ||
| 27146 | .each = .{ .once = &.{ | ||
| 27147 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | ||
| 27148 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, | ||
| 27149 | .{ ._, ._, .mov, .memsia(.dst0q, .@"8", .tmp0, .add_unaligned_size), .tmp1q, ._, ._ }, | ||
| 27150 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, | ||
| 27151 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 27152 | } }, | ||
| 27153 | }, .{ | ||
| 27154 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, | ||
| 27155 | .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .qword, .is = .qword } }}, | ||
| 27156 | .patterns = &.{ | ||
| 27157 | .{ .src = .{ .to_mem, .none } }, | ||
| 27158 | }, | ||
| 27159 | .extra_temps = .{ | ||
| 27160 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 27161 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | ||
| 27162 | .unused, | ||
| 27163 | .unused, | ||
| 27164 | .unused, | ||
| 27165 | .unused, | ||
| 27166 | .unused, | ||
| 27167 | .unused, | ||
| 27168 | .unused, | ||
| 27169 | }, | ||
| 27170 | .dst_temps = .{.mem}, | ||
| 27171 | .each = .{ .once = &.{ | ||
| 27172 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | ||
| 27173 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, | ||
| 27174 | .{ ._, ._, .mov, .memsia(.dst0q, .@"8", .tmp0, .add_unaligned_size), .tmp1q, ._, ._ }, | ||
| 27175 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, | ||
| 27176 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, | ||
| 27177 | } }, | ||
| 27178 | }, .{ | ||
| 27179 | .required_features = .{ .avx, null, null, null }, | ||
| 27180 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any }, | ||
| 27181 | .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .xword, .is = .xword } }}, | ||
| 27182 | .patterns = &.{ | ||
| 27183 | .{ .src = .{ .mem, .none } }, | ||
| 27184 | .{ .src = .{ .to_sse, .none } }, | ||
| 27185 | }, | ||
| 27186 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, | ||
| 27187 | .each = .{ .once = &.{ | ||
| 27188 | .{ ._, .vp_q, .movsxb, .dst0x, .src0w, ._, ._ }, | ||
| 27189 | .{ ._, .vp_q, .movsxd, .dst0x, .dst0q, ._, ._ }, | ||
| 27190 | } }, | ||
| 27191 | }, .{ | ||
| 27192 | .required_features = .{ .avx, null, null, null }, | ||
| 27193 | .src_constraints = .{ .{ .scalar_int = .{ .of = .byte, .is = .byte } }, .any }, | ||
| 27194 | .dst_constraints = .{.{ .scalar_int = .{ .of = .xword, .is = .xword } }}, | ||
| 27195 | .patterns = &.{ | ||
| 27196 | .{ .src = .{ .mem, .none } }, | ||
| 27197 | .{ .src = .{ .to_sse, .none } }, | ||
| 27198 | }, | ||
| 27199 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, | ||
| 27200 | .each = .{ .once = &.{ | ||
| 27201 | .{ ._, .vp_q, .movzxb, .dst0x, .src0w, ._, ._ }, | ||
| 27202 | .{ ._, .vp_q, .movzxd, .dst0x, .dst0q, ._, ._ }, | ||
| 27203 | } }, | ||
| 27204 | }, .{ | ||
| 27205 | .required_features = .{ .sse4_1, null, null, null }, | ||
| 27206 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any }, | ||
| 27207 | .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .xword, .is = .xword } }}, | ||
| 27208 | .patterns = &.{ | ||
| 27209 | .{ .src = .{ .mem, .none } }, | ||
| 27210 | .{ .src = .{ .to_sse, .none } }, | ||
| 27211 | }, | ||
| 27212 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, | ||
| 27213 | .each = .{ .once = &.{ | ||
| 27214 | .{ ._, .p_q, .movsxb, .dst0x, .src0w, ._, ._ }, | ||
| 27215 | .{ ._, .p_q, .movsxd, .dst0x, .dst0q, ._, ._ }, | ||
| 27216 | } }, | ||
| 27217 | }, .{ | ||
| 27218 | .required_features = .{ .sse4_1, null, null, null }, | ||
| 27219 | .src_constraints = .{ .{ .scalar_int = .{ .of = .byte, .is = .byte } }, .any }, | ||
| 27220 | .dst_constraints = .{.{ .scalar_int = .{ .of = .xword, .is = .xword } }}, | ||
| 27221 | .patterns = &.{ | ||
| 27222 | .{ .src = .{ .mem, .none } }, | ||
| 27223 | .{ .src = .{ .to_sse, .none } }, | ||
| 27224 | }, | ||
| 27225 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, | ||
| 27226 | .each = .{ .once = &.{ | ||
| 27227 | .{ ._, .p_q, .movzxb, .dst0x, .src0w, ._, ._ }, | ||
| 27228 | .{ ._, .p_q, .movzxd, .dst0x, .dst0q, ._, ._ }, | ||
| 27229 | } }, | ||
| 27230 | }, .{ | ||
| 27231 | .required_features = .{ .sse2, null, null, null }, | ||
| 27232 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any }, | ||
| 27233 | .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .xword, .is = .xword } }}, | ||
| 27234 | .patterns = &.{ | ||
| 27235 | .{ .src = .{ .to_mut_sse, .none } }, | ||
| 27236 | }, | ||
| 27237 | .extra_temps = .{ | ||
| 27238 | .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } }, | ||
| 27239 | .unused, | ||
| 27240 | .unused, | ||
| 27241 | .unused, | ||
| 27242 | .unused, | ||
| 27243 | .unused, | ||
| 27244 | .unused, | ||
| 27245 | .unused, | ||
| 27246 | .unused, | ||
| 27247 | }, | ||
| 27248 | .dst_temps = .{.{ .ref = .src0 }}, | ||
| 27249 | .each = .{ .once = &.{ | ||
| 27250 | .{ ._, .p_, .xor, .tmp0x, .tmp0x, ._, ._ }, | ||
| 27251 | .{ ._, .p_b, .cmpgt, .tmp0x, .src0x, ._, ._ }, | ||
| 27252 | .{ ._, .p_, .unpcklbw, .dst0x, .tmp0x, ._, ._ }, | ||
| 27253 | .{ ._, .p_, .unpcklbw, .tmp0x, .tmp0x, ._, ._ }, | ||
| 27254 | .{ ._, .p_, .unpcklwd, .dst0x, .tmp0x, ._, ._ }, | ||
| 27255 | .{ ._, .p_, .unpcklwd, .tmp0x, .tmp0x, ._, ._ }, | ||
| 27256 | .{ ._, .p_, .unpckldq, .dst0x, .tmp0x, ._, ._ }, | ||
| 27257 | .{ ._, .p_, .unpckldq, .tmp0x, .tmp0x, ._, ._ }, | ||
| 27258 | .{ ._, .p_, .unpcklqdq, .dst0x, .tmp0x, ._, ._ }, | ||
| 27259 | } }, | ||
| 27260 | }, .{ | ||
| 27261 | .required_features = .{ .sse2, null, null, null }, | ||
| 27262 | .src_constraints = .{ .{ .scalar_int = .{ .of = .byte, .is = .byte } }, .any }, | ||
| 27263 | .dst_constraints = .{.{ .scalar_int = .{ .of = .xword, .is = .xword } }}, | ||
| 27264 | .patterns = &.{ | ||
| 27265 | .{ .src = .{ .to_mut_sse, .none } }, | ||
| 27266 | }, | ||
| 27267 | .extra_temps = .{ | ||
| 27268 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, | ||
| 27269 | .unused, | ||
| 27270 | .unused, | ||
| 27271 | .unused, | ||
| 27272 | .unused, | ||
| 27273 | .unused, | ||
| 27274 | .unused, | ||
| 27275 | .unused, | ||
| 27276 | .unused, | ||
| 27277 | }, | ||
| 27278 | .dst_temps = .{.{ .ref = .src0 }}, | ||
| 27279 | .each = .{ .once = &.{ | ||
| 27280 | .{ ._, .p_, .xor, .tmp0x, .tmp0x, ._, ._ }, | ||
| 27281 | .{ ._, .p_, .unpcklbw, .dst0x, .tmp0x, ._, ._ }, | ||
| 27282 | .{ ._, .p_, .unpcklwd, .dst0x, .tmp0x, ._, ._ }, | ||
| 27283 | .{ ._, .p_, .unpckldq, .dst0x, .tmp0x, ._, ._ }, | ||
| 27284 | .{ ._, .p_, .unpcklqdq, .dst0x, .tmp0x, ._, ._ }, | ||
| 27285 | } }, | ||
| 27286 | }, .{ | ||
| 27287 | .required_features = .{ .@"64bit", .slow_incdec, null, null }, | ||
| 27288 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any }, | ||
| 27289 | .dst_constraints = .{.any_scalar_signed_int}, | ||
| 27290 | .patterns = &.{ | ||
| 27291 | .{ .src = .{ .to_mem, .none } }, | ||
| 27292 | }, | ||
| 27293 | .extra_temps = .{ | ||
| 27294 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 27295 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | ||
| 27296 | .{ .type = .i64, .kind = .{ .reg = .rax } }, | ||
| 27297 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, | ||
| 27298 | .unused, | ||
| 27299 | .unused, | ||
| 27300 | .unused, | ||
| 27301 | .unused, | ||
| 27302 | .unused, | ||
| 27303 | }, | ||
| 27304 | .dst_temps = .{.mem}, | ||
| 27305 | .each = .{ .once = &.{ | ||
| 27306 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | ||
| 27307 | .{ ._, ._, .lea, .tmp1q, .mem(.dst0), ._, ._ }, | ||
| 27308 | .{ .@"0:", ._, .movsx, .tmp2q, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, | ||
| 27309 | .{ ._, ._sq, .sto, ._, ._, ._, ._ }, | ||
| 27310 | .{ ._, ._r, .sa, .tmp2q, .si(63), ._, ._ }, | ||
| 27311 | .{ ._, ._, .mov, .tmp3d, .sia(-1, .dst0, .add_elem_size_div_8), ._, ._ }, | ||
| 27312 | .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ }, | ||
| 27313 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, | ||
| 27314 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 27315 | } }, | ||
| 27316 | }, .{ | ||
| 27317 | .required_features = .{ .@"64bit", null, null, null }, | ||
| 27318 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any }, | ||
| 27319 | .dst_constraints = .{.any_scalar_signed_int}, | ||
| 27320 | .patterns = &.{ | ||
| 27321 | .{ .src = .{ .to_mem, .none } }, | ||
| 27322 | }, | ||
| 27323 | .extra_temps = .{ | ||
| 27324 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 27325 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | ||
| 27326 | .{ .type = .i64, .kind = .{ .reg = .rax } }, | ||
| 27327 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, | ||
| 27328 | .unused, | ||
| 27329 | .unused, | ||
| 27330 | .unused, | ||
| 27331 | .unused, | ||
| 27332 | .unused, | ||
| 27333 | }, | ||
| 27334 | .dst_temps = .{.mem}, | ||
| 27335 | .each = .{ .once = &.{ | ||
| 27336 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | ||
| 27337 | .{ ._, ._, .lea, .tmp1q, .mem(.dst0), ._, ._ }, | ||
| 27338 | .{ .@"0:", ._, .movsx, .tmp2q, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, | ||
| 27339 | .{ ._, ._sq, .sto, ._, ._, ._, ._ }, | ||
| 27340 | .{ ._, ._r, .sa, .tmp2q, .si(63), ._, ._ }, | ||
| 27341 | .{ ._, ._, .mov, .tmp3d, .sia(-1, .dst0, .add_elem_size_div_8), ._, ._ }, | ||
| 27342 | .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ }, | ||
| 27343 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, | ||
| 27344 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, | ||
| 27345 | } }, | ||
| 27346 | }, .{ | ||
| 27347 | .required_features = .{ .@"64bit", .slow_incdec, null, null }, | ||
| 27348 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, | ||
| 27349 | .dst_constraints = .{.any_scalar_int}, | ||
| 27350 | .patterns = &.{ | ||
| 27351 | .{ .src = .{ .to_mem, .none } }, | ||
| 27352 | }, | ||
| 27353 | .extra_temps = .{ | ||
| 27354 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 27355 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | ||
| 27356 | .{ .type = .u64, .kind = .{ .reg = .rax } }, | ||
| 27357 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, | ||
| 27358 | .unused, | ||
| 27359 | .unused, | ||
| 27360 | .unused, | ||
| 27361 | .unused, | ||
| 27362 | .unused, | ||
| 27363 | }, | ||
| 27364 | .dst_temps = .{.mem}, | ||
| 27365 | .each = .{ .once = &.{ | ||
| 27366 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | ||
| 27367 | .{ ._, ._, .lea, .tmp1q, .mem(.dst0), ._, ._ }, | ||
| 27368 | .{ .@"0:", ._, .movzx, .tmp2d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, | ||
| 27369 | .{ ._, ._sq, .sto, ._, ._, ._, ._ }, | ||
| 27370 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, | ||
| 27371 | .{ ._, ._, .mov, .tmp3d, .sia(-1, .dst0, .add_elem_size_div_8), ._, ._ }, | ||
| 27372 | .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ }, | ||
| 27373 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, | ||
| 27374 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 27375 | } }, | ||
| 27376 | }, .{ | ||
| 27377 | .required_features = .{ .@"64bit", null, null, null }, | ||
| 27378 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, | ||
| 27379 | .dst_constraints = .{.any_scalar_int}, | ||
| 27380 | .patterns = &.{ | ||
| 27381 | .{ .src = .{ .to_mem, .none } }, | ||
| 27382 | }, | ||
| 27383 | .extra_temps = .{ | ||
| 27384 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 27385 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | ||
| 27386 | .{ .type = .u64, .kind = .{ .reg = .rax } }, | ||
| 27387 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, | ||
| 27388 | .unused, | ||
| 27389 | .unused, | ||
| 27390 | .unused, | ||
| 27391 | .unused, | ||
| 27392 | .unused, | ||
| 27393 | }, | ||
| 27394 | .dst_temps = .{.mem}, | ||
| 27395 | .each = .{ .once = &.{ | ||
| 27396 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | ||
| 27397 | .{ ._, ._, .lea, .tmp1q, .mem(.dst0), ._, ._ }, | ||
| 27398 | .{ .@"0:", ._, .movzx, .tmp2d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, | ||
| 27399 | .{ ._, ._sq, .sto, ._, ._, ._, ._ }, | ||
| 27400 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, | ||
| 27401 | .{ ._, ._, .mov, .tmp3d, .sia(-1, .dst0, .add_elem_size_div_8), ._, ._ }, | ||
| 27402 | .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ }, | ||
| 27403 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, | ||
| 27404 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, | ||
| 27405 | } }, | ||
| 27406 | }, .{ | ||
| 27407 | .required_features = .{ .avx, null, null, null }, | ||
| 27408 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .qword, .is = .word } }, .any }, | ||
| 27409 | .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .xword, .is = .dword } }}, | ||
| 27410 | .patterns = &.{ | ||
| 27411 | .{ .src = .{ .mem, .none } }, | ||
| 27412 | .{ .src = .{ .to_sse, .none } }, | ||
| 27413 | }, | ||
| 27414 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, | ||
| 27415 | .each = .{ .once = &.{ | ||
| 27416 | .{ ._, .vp_d, .movsxw, .dst0x, .src0q, ._, ._ }, | ||
| 27417 | } }, | ||
| 27418 | }, .{ | ||
| 27419 | .required_features = .{ .avx, null, null, null }, | ||
| 27420 | .src_constraints = .{ .{ .scalar_int = .{ .of = .qword, .is = .word } }, .any }, | ||
| 27421 | .dst_constraints = .{.{ .scalar_int = .{ .of = .xword, .is = .dword } }}, | ||
| 27422 | .patterns = &.{ | ||
| 27423 | .{ .src = .{ .mem, .none } }, | ||
| 27424 | .{ .src = .{ .to_sse, .none } }, | ||
| 27425 | }, | ||
| 27426 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, | ||
| 27427 | .each = .{ .once = &.{ | ||
| 27428 | .{ ._, .vp_d, .movzxw, .dst0x, .src0q, ._, ._ }, | ||
| 27429 | } }, | ||
| 27430 | }, .{ | ||
| 27431 | .required_features = .{ .sse4_1, null, null, null }, | ||
| 27432 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .qword, .is = .word } }, .any }, | ||
| 27433 | .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .xword, .is = .dword } }}, | ||
| 27434 | .patterns = &.{ | ||
| 27435 | .{ .src = .{ .mem, .none } }, | ||
| 27436 | .{ .src = .{ .to_sse, .none } }, | ||
| 27437 | }, | ||
| 27438 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, | ||
| 27439 | .each = .{ .once = &.{ | ||
| 27440 | .{ ._, .p_d, .movsxw, .dst0x, .src0q, ._, ._ }, | ||
| 27441 | } }, | ||
| 27442 | }, .{ | ||
| 27443 | .required_features = .{ .sse4_1, null, null, null }, | ||
| 27444 | .src_constraints = .{ .{ .scalar_int = .{ .of = .qword, .is = .word } }, .any }, | ||
| 27445 | .dst_constraints = .{.{ .scalar_int = .{ .of = .xword, .is = .dword } }}, | ||
| 27446 | .patterns = &.{ | ||
| 27447 | .{ .src = .{ .mem, .none } }, | ||
| 27448 | .{ .src = .{ .to_sse, .none } }, | ||
| 27449 | }, | ||
| 27450 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, | ||
| 27451 | .each = .{ .once = &.{ | ||
| 27452 | .{ ._, .p_d, .movzxw, .dst0x, .src0q, ._, ._ }, | ||
| 27453 | } }, | ||
| 27454 | }, .{ | ||
| 27455 | .required_features = .{ .sse2, null, null, null }, | ||
| 27456 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .qword, .is = .word } }, .any }, | ||
| 27457 | .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .xword, .is = .dword } }}, | ||
| 27458 | .patterns = &.{ | ||
| 27459 | .{ .src = .{ .to_mut_sse, .none } }, | ||
| 27460 | }, | ||
| 27461 | .extra_temps = .{ | ||
| 27462 | .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } }, | ||
| 27463 | .unused, | ||
| 27464 | .unused, | ||
| 27465 | .unused, | ||
| 27466 | .unused, | ||
| 27467 | .unused, | ||
| 27468 | .unused, | ||
| 27469 | .unused, | ||
| 27470 | .unused, | ||
| 27471 | }, | ||
| 27472 | .dst_temps = .{.{ .ref = .src0 }}, | ||
| 27473 | .each = .{ .once = &.{ | ||
| 27474 | .{ ._, .p_, .xor, .tmp0x, .tmp0x, ._, ._ }, | ||
| 27475 | .{ ._, .p_w, .cmpgt, .tmp0x, .src0x, ._, ._ }, | ||
| 27476 | .{ ._, .p_, .unpcklwd, .dst0x, .tmp0x, ._, ._ }, | ||
| 27477 | } }, | ||
| 27478 | }, .{ | ||
| 27479 | .required_features = .{ .sse2, null, null, null }, | ||
| 27480 | .src_constraints = .{ .{ .scalar_int = .{ .of = .qword, .is = .word } }, .any }, | ||
| 27481 | .dst_constraints = .{.{ .scalar_int = .{ .of = .xword, .is = .dword } }}, | ||
| 27482 | .patterns = &.{ | ||
| 27483 | .{ .src = .{ .to_mut_sse, .none } }, | ||
| 27484 | }, | ||
| 27485 | .extra_temps = .{ | ||
| 27486 | .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } }, | ||
| 27487 | .unused, | ||
| 27488 | .unused, | ||
| 27489 | .unused, | ||
| 27490 | .unused, | ||
| 27491 | .unused, | ||
| 27492 | .unused, | ||
| 27493 | .unused, | ||
| 27494 | .unused, | ||
| 27495 | }, | ||
| 27496 | .dst_temps = .{.{ .ref = .src0 }}, | ||
| 27497 | .each = .{ .once = &.{ | ||
| 27498 | .{ ._, .p_, .xor, .tmp0x, .tmp0x, ._, ._ }, | ||
| 27499 | .{ ._, .p_, .unpcklwd, .dst0x, .tmp0x, ._, ._ }, | ||
| 27500 | } }, | ||
| 27501 | }, .{ | ||
| 27502 | .required_features = .{ .avx2, null, null, null }, | ||
| 27503 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .word } }, .any }, | ||
| 27504 | .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .yword, .is = .dword } }}, | ||
| 27505 | .patterns = &.{ | ||
| 27506 | .{ .src = .{ .mem, .none } }, | ||
| 27507 | .{ .src = .{ .to_sse, .none } }, | ||
| 27508 | }, | ||
| 27509 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, | ||
| 27510 | .each = .{ .once = &.{ | ||
| 27511 | .{ ._, .vp_d, .movsxw, .dst0y, .src0x, ._, ._ }, | ||
| 27512 | } }, | ||
| 27513 | }, .{ | ||
| 27514 | .required_features = .{ .avx2, null, null, null }, | ||
| 27515 | .src_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .word } }, .any }, | ||
| 27516 | .dst_constraints = .{.{ .scalar_int = .{ .of = .yword, .is = .dword } }}, | ||
| 27517 | .patterns = &.{ | ||
| 27518 | .{ .src = .{ .mem, .none } }, | ||
| 27519 | .{ .src = .{ .to_sse, .none } }, | ||
| 27520 | }, | ||
| 27521 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, | ||
| 27522 | .each = .{ .once = &.{ | ||
| 27523 | .{ ._, .vp_d, .movzxw, .dst0y, .src0x, ._, ._ }, | ||
| 27524 | } }, | ||
| 27525 | }, .{ | ||
| 27526 | .required_features = .{ .avx2, null, null, null }, | ||
| 27527 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .word } }, .any }, | ||
| 27528 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .dword } }}, | ||
| 27529 | .patterns = &.{ | ||
| 27530 | .{ .src = .{ .mem, .none } }, | ||
| 27531 | }, | ||
| 27532 | .extra_temps = .{ | ||
| 27533 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 27534 | .{ .type = .vector_8_i32, .kind = .{ .rc = .sse } }, | ||
| 27535 | .unused, | ||
| 27536 | .unused, | ||
| 27537 | .unused, | ||
| 27538 | .unused, | ||
| 27539 | .unused, | ||
| 27540 | .unused, | ||
| 27541 | .unused, | ||
| 27542 | }, | ||
| 27543 | .dst_temps = .{.mem}, | ||
| 27544 | .each = .{ .once = &.{ | ||
| 27545 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | ||
| 27546 | .{ .@"0:", .vp_d, .movsxw, .tmp1y, .memia(.src0x, .tmp0, .add_size), ._, ._ }, | ||
| 27547 | .{ ._, .v_dqa, .mov, .memsia(.dst0y, .@"2", .tmp0, .add_size), .tmp1y, ._, ._ }, | ||
| 27548 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | ||
| 27549 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 27550 | } }, | ||
| 27551 | }, .{ | ||
| 27552 | .required_features = .{ .avx2, null, null, null }, | ||
| 27553 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .word } }, .any }, | ||
| 27554 | .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .yword, .is = .dword } }}, | ||
| 27555 | .patterns = &.{ | ||
| 27556 | .{ .src = .{ .mem, .none } }, | ||
| 27557 | }, | ||
| 27558 | .extra_temps = .{ | ||
| 27559 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 27560 | .{ .type = .vector_8_u32, .kind = .{ .rc = .sse } }, | ||
| 27561 | .unused, | ||
| 27562 | .unused, | ||
| 27563 | .unused, | ||
| 27564 | .unused, | ||
| 27565 | .unused, | ||
| 27566 | .unused, | ||
| 27567 | .unused, | ||
| 27568 | }, | ||
| 27569 | .dst_temps = .{.mem}, | ||
| 27570 | .each = .{ .once = &.{ | ||
| 27571 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | ||
| 27572 | .{ .@"0:", .vp_d, .movzxw, .tmp1y, .memia(.src0x, .tmp0, .add_size), ._, ._ }, | ||
| 27573 | .{ ._, .v_dqa, .mov, .memsia(.dst0y, .@"2", .tmp0, .add_size), .tmp1y, ._, ._ }, | ||
| 27574 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | ||
| 27575 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 27576 | } }, | ||
| 27577 | }, .{ | ||
| 27578 | .required_features = .{ .avx, null, null, null }, | ||
| 27579 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .word } }, .any }, | ||
| 27580 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }}, | ||
| 27581 | .patterns = &.{ | ||
| 27582 | .{ .src = .{ .mem, .none } }, | ||
| 27583 | }, | ||
| 27584 | .extra_temps = .{ | ||
| 27585 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 27586 | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, | ||
| 27587 | .unused, | ||
| 27588 | .unused, | ||
| 27589 | .unused, | ||
| 27590 | .unused, | ||
| 27591 | .unused, | ||
| 27592 | .unused, | ||
| 27593 | .unused, | ||
| 27594 | }, | ||
| 27595 | .dst_temps = .{.mem}, | ||
| 27596 | .each = .{ .once = &.{ | ||
| 27597 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | ||
| 27598 | .{ .@"0:", .vp_d, .movsxw, .tmp1x, .memia(.src0q, .tmp0, .add_size), ._, ._ }, | ||
| 27599 | .{ ._, .v_dqa, .mov, .memsia(.dst0x, .@"2", .tmp0, .add_size), .tmp1x, ._, ._ }, | ||
| 27600 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | ||
| 27601 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 27602 | } }, | ||
| 27603 | }, .{ | ||
| 27604 | .required_features = .{ .avx, null, null, null }, | ||
| 27605 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .qword, .is = .word } }, .any }, | ||
| 27606 | .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .xword, .is = .dword } }}, | ||
| 27607 | .patterns = &.{ | ||
| 27608 | .{ .src = .{ .mem, .none } }, | ||
| 27609 | }, | ||
| 27610 | .extra_temps = .{ | ||
| 27611 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 27612 | .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } }, | ||
| 27613 | .unused, | ||
| 27614 | .unused, | ||
| 27615 | .unused, | ||
| 27616 | .unused, | ||
| 27617 | .unused, | ||
| 27618 | .unused, | ||
| 27619 | .unused, | ||
| 27620 | }, | ||
| 27621 | .dst_temps = .{.mem}, | ||
| 27622 | .each = .{ .once = &.{ | ||
| 27623 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | ||
| 27624 | .{ .@"0:", .vp_d, .movzxw, .tmp1x, .memia(.src0q, .tmp0, .add_size), ._, ._ }, | ||
| 27625 | .{ ._, .v_dqa, .mov, .memsia(.dst0x, .@"2", .tmp0, .add_size), .tmp1x, ._, ._ }, | ||
| 27626 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | ||
| 27627 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 27628 | } }, | ||
| 27629 | }, .{ | ||
| 27630 | .required_features = .{ .sse4_1, null, null, null }, | ||
| 27631 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .word } }, .any }, | ||
| 27632 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }}, | ||
| 27633 | .patterns = &.{ | ||
| 27634 | .{ .src = .{ .mem, .none } }, | ||
| 27635 | }, | ||
| 27636 | .extra_temps = .{ | ||
| 27637 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 27638 | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, | ||
| 27639 | .unused, | ||
| 27640 | .unused, | ||
| 27641 | .unused, | ||
| 27642 | .unused, | ||
| 27643 | .unused, | ||
| 27644 | .unused, | ||
| 27645 | .unused, | ||
| 27646 | }, | ||
| 27647 | .dst_temps = .{.mem}, | ||
| 27648 | .each = .{ .once = &.{ | ||
| 27649 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | ||
| 27650 | .{ .@"0:", .p_d, .movsxw, .tmp1x, .memia(.src0q, .tmp0, .add_size), ._, ._ }, | ||
| 27651 | .{ ._, ._dqa, .mov, .memsia(.dst0x, .@"2", .tmp0, .add_size), .tmp1x, ._, ._ }, | ||
| 27652 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | ||
| 27653 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 27654 | } }, | ||
| 27655 | }, .{ | ||
| 27656 | .required_features = .{ .sse4_1, null, null, null }, | ||
| 27657 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .qword, .is = .word } }, .any }, | ||
| 27658 | .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .xword, .is = .dword } }}, | ||
| 27659 | .patterns = &.{ | ||
| 27660 | .{ .src = .{ .mem, .none } }, | ||
| 27661 | }, | ||
| 27662 | .extra_temps = .{ | ||
| 27663 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 27664 | .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } }, | ||
| 27665 | .unused, | ||
| 27666 | .unused, | ||
| 27667 | .unused, | ||
| 27668 | .unused, | ||
| 27669 | .unused, | ||
| 27670 | .unused, | ||
| 27671 | .unused, | ||
| 27672 | }, | ||
| 27673 | .dst_temps = .{.mem}, | ||
| 27674 | .each = .{ .once = &.{ | ||
| 27675 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | ||
| 27676 | .{ .@"0:", .p_d, .movzxw, .tmp1x, .memia(.src0q, .tmp0, .add_size), ._, ._ }, | ||
| 27677 | .{ ._, ._dqa, .mov, .memsia(.dst0x, .@"2", .tmp0, .add_size), .tmp1x, ._, ._ }, | ||
| 27678 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | ||
| 27679 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 27680 | } }, | ||
| 27681 | }, .{ | ||
| 27682 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any }, | ||
| 27683 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }}, | ||
| 27684 | .patterns = &.{ | ||
| 27685 | .{ .src = .{ .to_mem, .none } }, | ||
| 27686 | }, | ||
| 27687 | .extra_temps = .{ | ||
| 27688 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 27689 | .{ .type = .i32, .kind = .{ .rc = .general_purpose } }, | ||
| 27690 | .unused, | ||
| 27691 | .unused, | ||
| 27692 | .unused, | ||
| 27693 | .unused, | ||
| 27694 | .unused, | ||
| 27695 | .unused, | ||
| 27696 | .unused, | ||
| 27697 | }, | ||
| 27698 | .dst_temps = .{.mem}, | ||
| 27699 | .each = .{ .once = &.{ | ||
| 27700 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | ||
| 27701 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, | ||
| 27702 | .{ ._, ._, .mov, .memsia(.dst0d, .@"2", .tmp0, .add_unaligned_size), .tmp1d, ._, ._ }, | ||
| 27703 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | ||
| 27704 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 27705 | } }, | ||
| 27706 | }, .{ | ||
| 27707 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .word } }, .any }, | ||
| 27708 | .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .dword, .is = .dword } }}, | ||
| 27709 | .patterns = &.{ | ||
| 27710 | .{ .src = .{ .to_mem, .none } }, | ||
| 27711 | }, | ||
| 27712 | .extra_temps = .{ | ||
| 27713 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 27714 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | ||
| 27715 | .unused, | ||
| 27716 | .unused, | ||
| 27717 | .unused, | ||
| 27718 | .unused, | ||
| 27719 | .unused, | ||
| 27720 | .unused, | ||
| 27721 | .unused, | ||
| 27722 | }, | ||
| 27723 | .dst_temps = .{.mem}, | ||
| 27724 | .each = .{ .once = &.{ | ||
| 27725 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | ||
| 27726 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, | ||
| 27727 | .{ ._, ._, .mov, .memsia(.dst0d, .@"2", .tmp0, .add_unaligned_size), .tmp1d, ._, ._ }, | ||
| 27728 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | ||
| 27729 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 27730 | } }, | ||
| 27731 | }, .{ | ||
| 27732 | .required_features = .{ .avx, null, null, null }, | ||
| 27733 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .dword, .is = .word } }, .any }, | ||
| 27734 | .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .xword, .is = .qword } }}, | ||
| 27735 | .patterns = &.{ | ||
| 27736 | .{ .src = .{ .mem, .none } }, | ||
| 27737 | .{ .src = .{ .to_sse, .none } }, | ||
| 27738 | }, | ||
| 27739 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, | ||
| 27740 | .each = .{ .once = &.{ | ||
| 27741 | .{ ._, .vp_q, .movsxw, .dst0x, .src0d, ._, ._ }, | ||
| 27742 | } }, | ||
| 27743 | }, .{ | ||
| 27744 | .required_features = .{ .avx, null, null, null }, | ||
| 27745 | .src_constraints = .{ .{ .scalar_int = .{ .of = .dword, .is = .word } }, .any }, | ||
| 27746 | .dst_constraints = .{.{ .scalar_int = .{ .of = .xword, .is = .qword } }}, | ||
| 27747 | .patterns = &.{ | ||
| 27748 | .{ .src = .{ .mem, .none } }, | ||
| 27749 | .{ .src = .{ .to_sse, .none } }, | ||
| 27750 | }, | ||
| 27751 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, | ||
| 27752 | .each = .{ .once = &.{ | ||
| 27753 | .{ ._, .vp_q, .movzxw, .dst0x, .src0d, ._, ._ }, | ||
| 27754 | } }, | ||
| 27755 | }, .{ | ||
| 27756 | .required_features = .{ .sse4_1, null, null, null }, | ||
| 27757 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .dword, .is = .word } }, .any }, | ||
| 27758 | .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .xword, .is = .qword } }}, | ||
| 27759 | .patterns = &.{ | ||
| 27760 | .{ .src = .{ .mem, .none } }, | ||
| 27761 | .{ .src = .{ .to_sse, .none } }, | ||
| 27762 | }, | ||
| 27763 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, | ||
| 27764 | .each = .{ .once = &.{ | ||
| 27765 | .{ ._, .p_q, .movsxw, .dst0x, .src0d, ._, ._ }, | ||
| 27766 | } }, | ||
| 27767 | }, .{ | ||
| 27768 | .required_features = .{ .sse4_1, null, null, null }, | ||
| 27769 | .src_constraints = .{ .{ .scalar_int = .{ .of = .dword, .is = .word } }, .any }, | ||
| 27770 | .dst_constraints = .{.{ .scalar_int = .{ .of = .xword, .is = .qword } }}, | ||
| 27771 | .patterns = &.{ | ||
| 27772 | .{ .src = .{ .mem, .none } }, | ||
| 27773 | .{ .src = .{ .to_sse, .none } }, | ||
| 27774 | }, | ||
| 27775 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, | ||
| 27776 | .each = .{ .once = &.{ | ||
| 27777 | .{ ._, .p_q, .movzxw, .dst0x, .src0d, ._, ._ }, | ||
| 27778 | } }, | ||
| 27779 | }, .{ | ||
| 27780 | .required_features = .{ .sse2, null, null, null }, | ||
| 27781 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .dword, .is = .word } }, .any }, | ||
| 27782 | .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .xword, .is = .qword } }}, | ||
| 27783 | .patterns = &.{ | ||
| 27784 | .{ .src = .{ .to_mut_sse, .none } }, | ||
| 27785 | }, | ||
| 27786 | .extra_temps = .{ | ||
| 27787 | .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } }, | ||
| 27788 | .unused, | ||
| 27789 | .unused, | ||
| 27790 | .unused, | ||
| 27791 | .unused, | ||
| 27792 | .unused, | ||
| 27793 | .unused, | ||
| 27794 | .unused, | ||
| 27795 | .unused, | ||
| 27796 | }, | ||
| 27797 | .dst_temps = .{.{ .ref = .src0 }}, | ||
| 27798 | .each = .{ .once = &.{ | ||
| 27799 | .{ ._, .p_, .xor, .tmp0x, .tmp0x, ._, ._ }, | ||
| 27800 | .{ ._, .p_w, .cmpgt, .tmp0x, .src0x, ._, ._ }, | ||
| 27801 | .{ ._, .p_, .unpcklwd, .dst0x, .tmp0x, ._, ._ }, | ||
| 27802 | .{ ._, .p_, .unpcklwd, .tmp0x, .tmp0x, ._, ._ }, | ||
| 27803 | .{ ._, .p_, .unpckldq, .dst0x, .tmp0x, ._, ._ }, | ||
| 27804 | } }, | ||
| 27805 | }, .{ | ||
| 27806 | .required_features = .{ .sse2, null, null, null }, | ||
| 27807 | .src_constraints = .{ .{ .scalar_int = .{ .of = .dword, .is = .word } }, .any }, | ||
| 27808 | .dst_constraints = .{.{ .scalar_int = .{ .of = .xword, .is = .qword } }}, | ||
| 27809 | .patterns = &.{ | ||
| 27810 | .{ .src = .{ .to_mut_sse, .none } }, | ||
| 27811 | }, | ||
| 27812 | .extra_temps = .{ | ||
| 27813 | .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } }, | ||
| 27814 | .unused, | ||
| 27815 | .unused, | ||
| 27816 | .unused, | ||
| 27817 | .unused, | ||
| 27818 | .unused, | ||
| 27819 | .unused, | ||
| 27820 | .unused, | ||
| 27821 | .unused, | ||
| 27822 | }, | ||
| 27823 | .dst_temps = .{.{ .ref = .src0 }}, | ||
| 27824 | .each = .{ .once = &.{ | ||
| 27825 | .{ ._, .p_, .xor, .tmp0x, .tmp0x, ._, ._ }, | ||
| 27826 | .{ ._, .p_, .unpcklwd, .dst0x, .tmp0x, ._, ._ }, | ||
| 27827 | .{ ._, .p_, .unpckldq, .dst0x, .tmp0x, ._, ._ }, | ||
| 27828 | } }, | ||
| 27829 | }, .{ | ||
| 27830 | .required_features = .{ .avx2, null, null, null }, | ||
| 27831 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .qword, .is = .word } }, .any }, | ||
| 27832 | .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .yword, .is = .qword } }}, | ||
| 27833 | .patterns = &.{ | ||
| 27834 | .{ .src = .{ .mem, .none } }, | ||
| 27835 | .{ .src = .{ .to_sse, .none } }, | ||
| 27836 | }, | ||
| 27837 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, | ||
| 27838 | .each = .{ .once = &.{ | ||
| 27839 | .{ ._, .vp_q, .movsxw, .dst0y, .src0q, ._, ._ }, | ||
| 27840 | } }, | ||
| 27841 | }, .{ | ||
| 27842 | .required_features = .{ .avx2, null, null, null }, | ||
| 27843 | .src_constraints = .{ .{ .scalar_int = .{ .of = .qword, .is = .word } }, .any }, | ||
| 27844 | .dst_constraints = .{.{ .scalar_int = .{ .of = .yword, .is = .qword } }}, | ||
| 27845 | .patterns = &.{ | ||
| 27846 | .{ .src = .{ .mem, .none } }, | ||
| 27847 | .{ .src = .{ .to_sse, .none } }, | ||
| 27848 | }, | ||
| 27849 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, | ||
| 27850 | .each = .{ .once = &.{ | ||
| 27851 | .{ ._, .vp_q, .movzxw, .dst0y, .src0q, ._, ._ }, | ||
| 27852 | } }, | ||
| 27853 | }, .{ | ||
| 27854 | .required_features = .{ .avx2, null, null, null }, | ||
| 27855 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .word } }, .any }, | ||
| 27856 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .qword } }}, | ||
| 27857 | .patterns = &.{ | ||
| 27858 | .{ .src = .{ .mem, .none } }, | ||
| 27859 | }, | ||
| 27860 | .extra_temps = .{ | ||
| 27861 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 27862 | .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } }, | ||
| 27863 | .unused, | ||
| 27864 | .unused, | ||
| 27865 | .unused, | ||
| 27866 | .unused, | ||
| 27867 | .unused, | ||
| 27868 | .unused, | ||
| 27869 | .unused, | ||
| 27870 | }, | ||
| 27871 | .dst_temps = .{.mem}, | ||
| 27872 | .each = .{ .once = &.{ | ||
| 27873 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | ||
| 27874 | .{ .@"0:", .vp_q, .movsxw, .tmp1y, .memia(.src0q, .tmp0, .add_size), ._, ._ }, | ||
| 27875 | .{ ._, .v_dqa, .mov, .memsia(.dst0y, .@"4", .tmp0, .add_size), .tmp1y, ._, ._ }, | ||
| 27876 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | ||
| 27877 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 27878 | } }, | ||
| 27879 | }, .{ | ||
| 27880 | .required_features = .{ .avx2, null, null, null }, | ||
| 27881 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .qword, .is = .word } }, .any }, | ||
| 27882 | .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .yword, .is = .qword } }}, | ||
| 27883 | .patterns = &.{ | ||
| 27884 | .{ .src = .{ .mem, .none } }, | ||
| 27885 | }, | ||
| 27886 | .extra_temps = .{ | ||
| 27887 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 27888 | .{ .type = .vector_4_u64, .kind = .{ .rc = .sse } }, | ||
| 27889 | .unused, | ||
| 27890 | .unused, | ||
| 27891 | .unused, | ||
| 27892 | .unused, | ||
| 27893 | .unused, | ||
| 27894 | .unused, | ||
| 27895 | .unused, | ||
| 27896 | }, | ||
| 27897 | .dst_temps = .{.mem}, | ||
| 27898 | .each = .{ .once = &.{ | ||
| 27899 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | ||
| 27900 | .{ .@"0:", .vp_q, .movzxw, .tmp1y, .memia(.src0q, .tmp0, .add_size), ._, ._ }, | ||
| 27901 | .{ ._, .v_dqa, .mov, .memsia(.dst0y, .@"4", .tmp0, .add_size), .tmp1y, ._, ._ }, | ||
| 27902 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | ||
| 27903 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 27904 | } }, | ||
| 27905 | }, .{ | ||
| 27906 | .required_features = .{ .avx, null, null, null }, | ||
| 27907 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .word } }, .any }, | ||
| 27908 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .qword } }}, | ||
| 27909 | .patterns = &.{ | ||
| 27910 | .{ .src = .{ .mem, .none } }, | ||
| 27911 | }, | ||
| 27912 | .extra_temps = .{ | ||
| 27913 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 27914 | .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } }, | ||
| 27915 | .unused, | ||
| 27916 | .unused, | ||
| 27917 | .unused, | ||
| 27918 | .unused, | ||
| 27919 | .unused, | ||
| 27920 | .unused, | ||
| 27921 | .unused, | ||
| 27922 | }, | ||
| 27923 | .dst_temps = .{.mem}, | ||
| 27924 | .each = .{ .once = &.{ | ||
| 27925 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | ||
| 27926 | .{ .@"0:", .vp_q, .movsxw, .tmp1x, .memia(.src0d, .tmp0, .add_size), ._, ._ }, | ||
| 27927 | .{ ._, .v_dqa, .mov, .memsia(.dst0x, .@"4", .tmp0, .add_size), .tmp1x, ._, ._ }, | ||
| 27928 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | ||
| 27929 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 27930 | } }, | ||
| 27931 | }, .{ | ||
| 27932 | .required_features = .{ .avx, null, null, null }, | ||
| 27933 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .dword, .is = .word } }, .any }, | ||
| 27934 | .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .xword, .is = .qword } }}, | ||
| 27935 | .patterns = &.{ | ||
| 27936 | .{ .src = .{ .mem, .none } }, | ||
| 27937 | }, | ||
| 27938 | .extra_temps = .{ | ||
| 27939 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 27940 | .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } }, | ||
| 27941 | .unused, | ||
| 27942 | .unused, | ||
| 27943 | .unused, | ||
| 27944 | .unused, | ||
| 27945 | .unused, | ||
| 27946 | .unused, | ||
| 27947 | .unused, | ||
| 27948 | }, | ||
| 27949 | .dst_temps = .{.mem}, | ||
| 27950 | .each = .{ .once = &.{ | ||
| 27951 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | ||
| 27952 | .{ .@"0:", .vp_q, .movzxw, .tmp1x, .memia(.src0d, .tmp0, .add_size), ._, ._ }, | ||
| 27953 | .{ ._, .v_dqa, .mov, .memsia(.dst0x, .@"4", .tmp0, .add_size), .tmp1x, ._, ._ }, | ||
| 27954 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | ||
| 27955 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 27956 | } }, | ||
| 27957 | }, .{ | ||
| 27958 | .required_features = .{ .sse4_1, null, null, null }, | ||
| 27959 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .word } }, .any }, | ||
| 27960 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .qword } }}, | ||
| 27961 | .patterns = &.{ | ||
| 27962 | .{ .src = .{ .mem, .none } }, | ||
| 27963 | }, | ||
| 27964 | .extra_temps = .{ | ||
| 27965 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 27966 | .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } }, | ||
| 27967 | .unused, | ||
| 27968 | .unused, | ||
| 27969 | .unused, | ||
| 27970 | .unused, | ||
| 27971 | .unused, | ||
| 27972 | .unused, | ||
| 27973 | .unused, | ||
| 27974 | }, | ||
| 27975 | .dst_temps = .{.mem}, | ||
| 27976 | .each = .{ .once = &.{ | ||
| 27977 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | ||
| 27978 | .{ .@"0:", .p_q, .movsxw, .tmp1x, .memia(.src0d, .tmp0, .add_size), ._, ._ }, | ||
| 27979 | .{ ._, ._dqa, .mov, .memsia(.dst0x, .@"4", .tmp0, .add_size), .tmp1x, ._, ._ }, | ||
| 27980 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | ||
| 27981 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 27982 | } }, | ||
| 27983 | }, .{ | ||
| 27984 | .required_features = .{ .sse4_1, null, null, null }, | ||
| 27985 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .dword, .is = .word } }, .any }, | ||
| 27986 | .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .xword, .is = .qword } }}, | ||
| 27987 | .patterns = &.{ | ||
| 27988 | .{ .src = .{ .mem, .none } }, | ||
| 27989 | }, | ||
| 27990 | .extra_temps = .{ | ||
| 27991 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 27992 | .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } }, | ||
| 27993 | .unused, | ||
| 27994 | .unused, | ||
| 27995 | .unused, | ||
| 27996 | .unused, | ||
| 27997 | .unused, | ||
| 27998 | .unused, | ||
| 27999 | .unused, | ||
| 28000 | }, | ||
| 28001 | .dst_temps = .{.mem}, | ||
| 28002 | .each = .{ .once = &.{ | ||
| 28003 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | ||
| 28004 | .{ .@"0:", .p_q, .movzxw, .tmp1x, .memia(.src0d, .tmp0, .add_size), ._, ._ }, | ||
| 28005 | .{ ._, ._dqa, .mov, .memsia(.dst0x, .@"4", .tmp0, .add_size), .tmp1x, ._, ._ }, | ||
| 28006 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | ||
| 28007 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 28008 | } }, | ||
| 28009 | }, .{ | ||
| 28010 | .required_features = .{ .@"64bit", null, null, null }, | ||
| 28011 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any }, | ||
| 28012 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }}, | ||
| 28013 | .patterns = &.{ | ||
| 28014 | .{ .src = .{ .to_mem, .none } }, | ||
| 28015 | }, | ||
| 28016 | .extra_temps = .{ | ||
| 28017 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 28018 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, | ||
| 28019 | .unused, | ||
| 28020 | .unused, | ||
| 28021 | .unused, | ||
| 28022 | .unused, | ||
| 28023 | .unused, | ||
| 28024 | .unused, | ||
| 28025 | .unused, | ||
| 28026 | }, | ||
| 28027 | .dst_temps = .{.mem}, | ||
| 28028 | .each = .{ .once = &.{ | ||
| 28029 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | ||
| 28030 | .{ .@"0:", ._, .movsx, .tmp1q, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, | ||
| 28031 | .{ ._, ._, .mov, .memsia(.dst0q, .@"4", .tmp0, .add_unaligned_size), .tmp1q, ._, ._ }, | ||
| 28032 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | ||
| 28033 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 28034 | } }, | ||
| 28035 | }, .{ | ||
| 28036 | .required_features = .{ .@"64bit", null, null, null }, | ||
| 28037 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .word } }, .any }, | ||
| 28038 | .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .qword, .is = .qword } }}, | ||
| 28039 | .patterns = &.{ | ||
| 28040 | .{ .src = .{ .to_mem, .none } }, | ||
| 28041 | }, | ||
| 28042 | .extra_temps = .{ | ||
| 28043 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 28044 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, | ||
| 28045 | .unused, | ||
| 28046 | .unused, | ||
| 28047 | .unused, | ||
| 28048 | .unused, | ||
| 28049 | .unused, | ||
| 28050 | .unused, | ||
| 28051 | .unused, | ||
| 28052 | }, | ||
| 28053 | .dst_temps = .{.mem}, | ||
| 28054 | .each = .{ .once = &.{ | ||
| 28055 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | ||
| 28056 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, | ||
| 28057 | .{ ._, ._, .mov, .memsia(.dst0q, .@"4", .tmp0, .add_unaligned_size), .tmp1q, ._, ._ }, | ||
| 28058 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | ||
| 28059 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 28060 | } }, | ||
| 28061 | }, .{ | ||
| 28062 | .required_features = .{ .avx, null, null, null }, | ||
| 28063 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .word, .is = .word } }, .any }, | ||
| 28064 | .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .xword, .is = .xword } }}, | ||
| 28065 | .patterns = &.{ | ||
| 28066 | .{ .src = .{ .mem, .none } }, | ||
| 28067 | .{ .src = .{ .to_sse, .none } }, | ||
| 28068 | }, | ||
| 28069 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, | ||
| 28070 | .each = .{ .once = &.{ | ||
| 28071 | .{ ._, .vp_q, .movsxw, .dst0x, .src0d, ._, ._ }, | ||
| 28072 | .{ ._, .vp_q, .movsxd, .dst0x, .dst0q, ._, ._ }, | ||
| 28073 | } }, | ||
| 28074 | }, .{ | ||
| 28075 | .required_features = .{ .avx, null, null, null }, | ||
| 28076 | .src_constraints = .{ .{ .scalar_int = .{ .of = .word, .is = .word } }, .any }, | ||
| 28077 | .dst_constraints = .{.{ .scalar_int = .{ .of = .xword, .is = .xword } }}, | ||
| 28078 | .patterns = &.{ | ||
| 28079 | .{ .src = .{ .mem, .none } }, | ||
| 28080 | .{ .src = .{ .to_sse, .none } }, | ||
| 28081 | }, | ||
| 28082 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, | ||
| 28083 | .each = .{ .once = &.{ | ||
| 28084 | .{ ._, .vp_q, .movzxw, .dst0x, .src0d, ._, ._ }, | ||
| 28085 | .{ ._, .vp_q, .movzxd, .dst0x, .dst0q, ._, ._ }, | ||
| 28086 | } }, | ||
| 28087 | }, .{ | ||
| 28088 | .required_features = .{ .sse4_1, null, null, null }, | ||
| 28089 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .word, .is = .word } }, .any }, | ||
| 28090 | .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .xword, .is = .xword } }}, | ||
| 28091 | .patterns = &.{ | ||
| 28092 | .{ .src = .{ .mem, .none } }, | ||
| 28093 | .{ .src = .{ .to_sse, .none } }, | ||
| 28094 | }, | ||
| 28095 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, | ||
| 28096 | .each = .{ .once = &.{ | ||
| 28097 | .{ ._, .p_q, .movsxw, .dst0x, .src0d, ._, ._ }, | ||
| 28098 | .{ ._, .p_q, .movsxd, .dst0x, .dst0q, ._, ._ }, | ||
| 28099 | } }, | ||
| 28100 | }, .{ | ||
| 28101 | .required_features = .{ .sse4_1, null, null, null }, | ||
| 28102 | .src_constraints = .{ .{ .scalar_int = .{ .of = .word, .is = .word } }, .any }, | ||
| 28103 | .dst_constraints = .{.{ .scalar_int = .{ .of = .xword, .is = .xword } }}, | ||
| 28104 | .patterns = &.{ | ||
| 28105 | .{ .src = .{ .mem, .none } }, | ||
| 28106 | .{ .src = .{ .to_sse, .none } }, | ||
| 28107 | }, | ||
| 28108 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, | ||
| 28109 | .each = .{ .once = &.{ | ||
| 28110 | .{ ._, .p_q, .movzxw, .dst0x, .src0d, ._, ._ }, | ||
| 28111 | .{ ._, .p_q, .movzxd, .dst0x, .dst0q, ._, ._ }, | ||
| 28112 | } }, | ||
| 28113 | }, .{ | ||
| 28114 | .required_features = .{ .sse2, null, null, null }, | ||
| 28115 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .word, .is = .word } }, .any }, | ||
| 28116 | .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .xword, .is = .xword } }}, | ||
| 28117 | .patterns = &.{ | ||
| 28118 | .{ .src = .{ .to_mut_sse, .none } }, | ||
| 28119 | }, | ||
| 28120 | .extra_temps = .{ | ||
| 28121 | .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } }, | ||
| 28122 | .unused, | ||
| 28123 | .unused, | ||
| 28124 | .unused, | ||
| 28125 | .unused, | ||
| 28126 | .unused, | ||
| 28127 | .unused, | ||
| 28128 | .unused, | ||
| 28129 | .unused, | ||
| 28130 | }, | ||
| 28131 | .dst_temps = .{.{ .ref = .src0 }}, | ||
| 28132 | .each = .{ .once = &.{ | ||
| 28133 | .{ ._, .p_, .xor, .tmp0x, .tmp0x, ._, ._ }, | ||
| 28134 | .{ ._, .p_w, .cmpgt, .tmp0x, .src0x, ._, ._ }, | ||
| 28135 | .{ ._, .p_, .unpcklwd, .dst0x, .tmp0x, ._, ._ }, | ||
| 28136 | .{ ._, .p_, .unpcklwd, .tmp0x, .tmp0x, ._, ._ }, | ||
| 28137 | .{ ._, .p_, .unpckldq, .dst0x, .tmp0x, ._, ._ }, | ||
| 28138 | .{ ._, .p_, .unpckldq, .tmp0x, .tmp0x, ._, ._ }, | ||
| 28139 | .{ ._, .p_, .unpcklqdq, .dst0x, .tmp0x, ._, ._ }, | ||
| 28140 | } }, | ||
| 28141 | }, .{ | ||
| 28142 | .required_features = .{ .sse2, null, null, null }, | ||
| 28143 | .src_constraints = .{ .{ .scalar_int = .{ .of = .word, .is = .word } }, .any }, | ||
| 28144 | .dst_constraints = .{.{ .scalar_int = .{ .of = .xword, .is = .xword } }}, | ||
| 28145 | .patterns = &.{ | ||
| 28146 | .{ .src = .{ .to_mut_sse, .none } }, | ||
| 28147 | }, | ||
| 28148 | .extra_temps = .{ | ||
| 28149 | .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } }, | ||
| 28150 | .unused, | ||
| 28151 | .unused, | ||
| 28152 | .unused, | ||
| 28153 | .unused, | ||
| 28154 | .unused, | ||
| 28155 | .unused, | ||
| 28156 | .unused, | ||
| 28157 | .unused, | ||
| 28158 | }, | ||
| 28159 | .dst_temps = .{.{ .ref = .src0 }}, | ||
| 28160 | .each = .{ .once = &.{ | ||
| 28161 | .{ ._, .p_, .xor, .tmp0x, .tmp0x, ._, ._ }, | ||
| 28162 | .{ ._, .p_, .unpcklwd, .dst0x, .tmp0x, ._, ._ }, | ||
| 28163 | .{ ._, .p_, .unpckldq, .dst0x, .tmp0x, ._, ._ }, | ||
| 28164 | .{ ._, .p_, .unpcklqdq, .dst0x, .tmp0x, ._, ._ }, | ||
| 28165 | } }, | ||
| 28166 | }, .{ | ||
| 28167 | .required_features = .{ .@"64bit", null, null, null }, | ||
| 28168 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any }, | ||
| 28169 | .dst_constraints = .{.any_scalar_signed_int}, | ||
| 28170 | .patterns = &.{ | ||
| 28171 | .{ .src = .{ .to_mem, .none } }, | ||
| 28172 | }, | ||
| 28173 | .extra_temps = .{ | ||
| 28174 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 28175 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | ||
| 28176 | .{ .type = .i64, .kind = .{ .reg = .rax } }, | ||
| 28177 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, | ||
| 28178 | .unused, | ||
| 28179 | .unused, | ||
| 28180 | .unused, | ||
| 28181 | .unused, | ||
| 28182 | .unused, | ||
| 28183 | }, | ||
| 28184 | .dst_temps = .{.mem}, | ||
| 28185 | .each = .{ .once = &.{ | ||
| 28186 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | ||
| 28187 | .{ ._, ._, .lea, .tmp1q, .mem(.dst0), ._, ._ }, | ||
| 28188 | .{ .@"0:", ._, .movsx, .tmp2q, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, | ||
| 28189 | .{ ._, ._sq, .sto, ._, ._, ._, ._ }, | ||
| 28190 | .{ ._, ._r, .sa, .tmp2q, .si(63), ._, ._ }, | ||
| 28191 | .{ ._, ._, .mov, .tmp3d, .sia(-1, .dst0, .add_elem_size_div_8), ._, ._ }, | ||
| 28192 | .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ }, | ||
| 28193 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | ||
| 28194 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 28195 | } }, | ||
| 28196 | }, .{ | ||
| 28197 | .required_features = .{ .@"64bit", null, null, null }, | ||
| 28198 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .word } }, .any }, | ||
| 28199 | .dst_constraints = .{.any_scalar_int}, | ||
| 28200 | .patterns = &.{ | ||
| 28201 | .{ .src = .{ .to_mem, .none } }, | ||
| 28202 | }, | ||
| 28203 | .extra_temps = .{ | ||
| 28204 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 28205 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | ||
| 28206 | .{ .type = .u64, .kind = .{ .reg = .rax } }, | ||
| 28207 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, | ||
| 28208 | .unused, | ||
| 28209 | .unused, | ||
| 28210 | .unused, | ||
| 28211 | .unused, | ||
| 28212 | .unused, | ||
| 28213 | }, | ||
| 28214 | .dst_temps = .{.mem}, | ||
| 28215 | .each = .{ .once = &.{ | ||
| 28216 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | ||
| 28217 | .{ ._, ._, .lea, .tmp1q, .mem(.dst0), ._, ._ }, | ||
| 28218 | .{ .@"0:", ._, .movzx, .tmp2d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, | ||
| 28219 | .{ ._, ._sq, .sto, ._, ._, ._, ._ }, | ||
| 28220 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, | ||
| 28221 | .{ ._, ._, .mov, .tmp3d, .sia(-1, .dst0, .add_elem_size_div_8), ._, ._ }, | ||
| 28222 | .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ }, | ||
| 28223 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | ||
| 28224 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 28225 | } }, | ||
| 28226 | }, .{ | ||
| 28227 | .required_features = .{ .avx, null, null, null }, | ||
| 28228 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .qword, .is = .dword } }, .any }, | ||
| 28229 | .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .xword, .is = .qword } }}, | ||
| 28230 | .patterns = &.{ | ||
| 28231 | .{ .src = .{ .mem, .none } }, | ||
| 28232 | .{ .src = .{ .to_sse, .none } }, | ||
| 28233 | }, | ||
| 28234 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, | ||
| 28235 | .each = .{ .once = &.{ | ||
| 28236 | .{ ._, .vp_q, .movsxd, .dst0x, .src0q, ._, ._ }, | ||
| 28237 | } }, | ||
| 28238 | }, .{ | ||
| 28239 | .required_features = .{ .avx, null, null, null }, | ||
| 28240 | .src_constraints = .{ .{ .scalar_int = .{ .of = .qword, .is = .dword } }, .any }, | ||
| 28241 | .dst_constraints = .{.{ .scalar_int = .{ .of = .xword, .is = .qword } }}, | ||
| 28242 | .patterns = &.{ | ||
| 28243 | .{ .src = .{ .mem, .none } }, | ||
| 28244 | .{ .src = .{ .to_sse, .none } }, | ||
| 28245 | }, | ||
| 28246 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, | ||
| 28247 | .each = .{ .once = &.{ | ||
| 28248 | .{ ._, .vp_q, .movzxd, .dst0x, .src0q, ._, ._ }, | ||
| 28249 | } }, | ||
| 28250 | }, .{ | ||
| 28251 | .required_features = .{ .sse4_1, null, null, null }, | ||
| 28252 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .qword, .is = .dword } }, .any }, | ||
| 28253 | .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .xword, .is = .qword } }}, | ||
| 28254 | .patterns = &.{ | ||
| 28255 | .{ .src = .{ .mem, .none } }, | ||
| 28256 | .{ .src = .{ .to_sse, .none } }, | ||
| 28257 | }, | ||
| 28258 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, | ||
| 28259 | .each = .{ .once = &.{ | ||
| 28260 | .{ ._, .p_q, .movsxd, .dst0x, .src0q, ._, ._ }, | ||
| 28261 | } }, | ||
| 28262 | }, .{ | ||
| 28263 | .required_features = .{ .sse4_1, null, null, null }, | ||
| 28264 | .src_constraints = .{ .{ .scalar_int = .{ .of = .qword, .is = .dword } }, .any }, | ||
| 28265 | .dst_constraints = .{.{ .scalar_int = .{ .of = .xword, .is = .qword } }}, | ||
| 28266 | .patterns = &.{ | ||
| 28267 | .{ .src = .{ .mem, .none } }, | ||
| 28268 | .{ .src = .{ .to_sse, .none } }, | ||
| 28269 | }, | ||
| 28270 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, | ||
| 28271 | .each = .{ .once = &.{ | ||
| 28272 | .{ ._, .p_q, .movzxd, .dst0x, .src0q, ._, ._ }, | ||
| 28273 | } }, | ||
| 28274 | }, .{ | ||
| 28275 | .required_features = .{ .sse2, null, null, null }, | ||
| 28276 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .qword, .is = .dword } }, .any }, | ||
| 28277 | .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .xword, .is = .qword } }}, | ||
| 28278 | .patterns = &.{ | ||
| 28279 | .{ .src = .{ .to_mut_sse, .none } }, | ||
| 28280 | }, | ||
| 28281 | .extra_temps = .{ | ||
| 28282 | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, | ||
| 28283 | .unused, | ||
| 28284 | .unused, | ||
| 28285 | .unused, | ||
| 28286 | .unused, | ||
| 28287 | .unused, | ||
| 28288 | .unused, | ||
| 28289 | .unused, | ||
| 28290 | .unused, | ||
| 28291 | }, | ||
| 28292 | .dst_temps = .{.{ .ref = .src0 }}, | ||
| 28293 | .each = .{ .once = &.{ | ||
| 28294 | .{ ._, .p_, .xor, .tmp0x, .tmp0x, ._, ._ }, | ||
| 28295 | .{ ._, .p_d, .cmpgt, .tmp0x, .src0x, ._, ._ }, | ||
| 28296 | .{ ._, .p_, .unpckldq, .dst0x, .tmp0x, ._, ._ }, | ||
| 28297 | } }, | ||
| 28298 | }, .{ | ||
| 28299 | .required_features = .{ .sse2, null, null, null }, | ||
| 28300 | .src_constraints = .{ .{ .scalar_int = .{ .of = .qword, .is = .dword } }, .any }, | ||
| 28301 | .dst_constraints = .{.{ .scalar_int = .{ .of = .xword, .is = .qword } }}, | ||
| 28302 | .patterns = &.{ | ||
| 28303 | .{ .src = .{ .to_mut_sse, .none } }, | ||
| 28304 | }, | ||
| 28305 | .extra_temps = .{ | ||
| 28306 | .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } }, | ||
| 28307 | .unused, | ||
| 28308 | .unused, | ||
| 28309 | .unused, | ||
| 28310 | .unused, | ||
| 28311 | .unused, | ||
| 28312 | .unused, | ||
| 28313 | .unused, | ||
| 28314 | .unused, | ||
| 28315 | }, | ||
| 28316 | .dst_temps = .{.{ .ref = .src0 }}, | ||
| 28317 | .each = .{ .once = &.{ | ||
| 28318 | .{ ._, .p_, .xor, .tmp0x, .tmp0x, ._, ._ }, | ||
| 28319 | .{ ._, .p_, .unpckldq, .dst0x, .tmp0x, ._, ._ }, | ||
| 28320 | } }, | ||
| 28321 | }, .{ | ||
| 28322 | .required_features = .{ .avx2, null, null, null }, | ||
| 28323 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any }, | ||
| 28324 | .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .yword, .is = .qword } }}, | ||
| 28325 | .patterns = &.{ | ||
| 28326 | .{ .src = .{ .mem, .none } }, | ||
| 28327 | .{ .src = .{ .to_sse, .none } }, | ||
| 28328 | }, | ||
| 28329 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, | ||
| 28330 | .each = .{ .once = &.{ | ||
| 28331 | .{ ._, .vp_q, .movsxd, .dst0y, .src0x, ._, ._ }, | ||
| 28332 | } }, | ||
| 28333 | }, .{ | ||
| 28334 | .required_features = .{ .avx2, null, null, null }, | ||
| 28335 | .src_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .dword } }, .any }, | ||
| 28336 | .dst_constraints = .{.{ .scalar_int = .{ .of = .yword, .is = .qword } }}, | ||
| 28337 | .patterns = &.{ | ||
| 28338 | .{ .src = .{ .mem, .none } }, | ||
| 28339 | .{ .src = .{ .to_sse, .none } }, | ||
| 28340 | }, | ||
| 28341 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, | ||
| 28342 | .each = .{ .once = &.{ | ||
| 28343 | .{ ._, .vp_q, .movzxd, .dst0y, .src0x, ._, ._ }, | ||
| 28344 | } }, | ||
| 28345 | }, .{ | ||
| 28346 | .required_features = .{ .avx2, null, null, null }, | ||
| 28347 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any }, | ||
| 28348 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .qword } }}, | ||
| 28349 | .patterns = &.{ | ||
| 28350 | .{ .src = .{ .mem, .none } }, | ||
| 28351 | }, | ||
| 28352 | .extra_temps = .{ | ||
| 28353 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 28354 | .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } }, | ||
| 28355 | .unused, | ||
| 28356 | .unused, | ||
| 28357 | .unused, | ||
| 28358 | .unused, | ||
| 28359 | .unused, | ||
| 28360 | .unused, | ||
| 28361 | .unused, | ||
| 28362 | }, | ||
| 28363 | .dst_temps = .{.mem}, | ||
| 28364 | .each = .{ .once = &.{ | ||
| 28365 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | ||
| 28366 | .{ .@"0:", .vp_q, .movsxd, .tmp1y, .memia(.src0x, .tmp0, .add_size), ._, ._ }, | ||
| 28367 | .{ ._, .v_dqa, .mov, .memsia(.dst0y, .@"2", .tmp0, .add_size), .tmp1y, ._, ._ }, | ||
| 28368 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | ||
| 28369 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 28370 | } }, | ||
| 28371 | }, .{ | ||
| 28372 | .required_features = .{ .avx2, null, null, null }, | ||
| 28373 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .dword } }, .any }, | ||
| 28374 | .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .yword, .is = .qword } }}, | ||
| 28375 | .patterns = &.{ | ||
| 28376 | .{ .src = .{ .mem, .none } }, | ||
| 28377 | }, | ||
| 28378 | .extra_temps = .{ | ||
| 28379 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 28380 | .{ .type = .vector_4_u64, .kind = .{ .rc = .sse } }, | ||
| 28381 | .unused, | ||
| 28382 | .unused, | ||
| 28383 | .unused, | ||
| 28384 | .unused, | ||
| 28385 | .unused, | ||
| 28386 | .unused, | ||
| 28387 | .unused, | ||
| 28388 | }, | ||
| 28389 | .dst_temps = .{.mem}, | ||
| 28390 | .each = .{ .once = &.{ | ||
| 28391 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | ||
| 28392 | .{ .@"0:", .vp_q, .movzxd, .tmp1y, .memia(.src0x, .tmp0, .add_size), ._, ._ }, | ||
| 28393 | .{ ._, .v_dqa, .mov, .memsia(.dst0y, .@"2", .tmp0, .add_size), .tmp1y, ._, ._ }, | ||
| 28394 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | ||
| 28395 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 28396 | } }, | ||
| 28397 | }, .{ | ||
| 28398 | .required_features = .{ .avx, null, null, null }, | ||
| 28399 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .dword } }, .any }, | ||
| 28400 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .qword } }}, | ||
| 28401 | .patterns = &.{ | ||
| 28402 | .{ .src = .{ .mem, .none } }, | ||
| 28403 | }, | ||
| 28404 | .extra_temps = .{ | ||
| 28405 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 28406 | .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } }, | ||
| 28407 | .unused, | ||
| 28408 | .unused, | ||
| 28409 | .unused, | ||
| 28410 | .unused, | ||
| 28411 | .unused, | ||
| 28412 | .unused, | ||
| 28413 | .unused, | ||
| 28414 | }, | ||
| 28415 | .dst_temps = .{.mem}, | ||
| 28416 | .each = .{ .once = &.{ | ||
| 28417 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | ||
| 28418 | .{ .@"0:", .vp_q, .movsxd, .tmp1x, .memia(.src0q, .tmp0, .add_size), ._, ._ }, | ||
| 28419 | .{ ._, .v_dqa, .mov, .memsia(.dst0x, .@"2", .tmp0, .add_size), .tmp1x, ._, ._ }, | ||
| 28420 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | ||
| 28421 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 28422 | } }, | ||
| 28423 | }, .{ | ||
| 28424 | .required_features = .{ .avx, null, null, null }, | ||
| 28425 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .dword, .is = .word } }, .any }, | ||
| 28426 | .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .xword, .is = .qword } }}, | ||
| 28427 | .patterns = &.{ | ||
| 28428 | .{ .src = .{ .mem, .none } }, | ||
| 28429 | }, | ||
| 28430 | .extra_temps = .{ | ||
| 28431 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 28432 | .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } }, | ||
| 28433 | .unused, | ||
| 28434 | .unused, | ||
| 28435 | .unused, | ||
| 28436 | .unused, | ||
| 28437 | .unused, | ||
| 28438 | .unused, | ||
| 28439 | .unused, | ||
| 28440 | }, | ||
| 28441 | .dst_temps = .{.mem}, | ||
| 28442 | .each = .{ .once = &.{ | ||
| 28443 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | ||
| 28444 | .{ .@"0:", .vp_q, .movzxd, .tmp1x, .memia(.src0q, .tmp0, .add_size), ._, ._ }, | ||
| 28445 | .{ ._, .v_dqa, .mov, .memsia(.dst0x, .@"2", .tmp0, .add_size), .tmp1x, ._, ._ }, | ||
| 28446 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | ||
| 28447 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 28448 | } }, | ||
| 28449 | }, .{ | ||
| 28450 | .required_features = .{ .sse4_1, null, null, null }, | ||
| 28451 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .dword } }, .any }, | ||
| 28452 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .qword } }}, | ||
| 28453 | .patterns = &.{ | ||
| 28454 | .{ .src = .{ .mem, .none } }, | ||
| 28455 | }, | ||
| 28456 | .extra_temps = .{ | ||
| 28457 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 28458 | .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } }, | ||
| 28459 | .unused, | ||
| 28460 | .unused, | ||
| 28461 | .unused, | ||
| 28462 | .unused, | ||
| 28463 | .unused, | ||
| 28464 | .unused, | ||
| 28465 | .unused, | ||
| 28466 | }, | ||
| 28467 | .dst_temps = .{.mem}, | ||
| 28468 | .each = .{ .once = &.{ | ||
| 28469 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | ||
| 28470 | .{ .@"0:", .p_q, .movsxd, .tmp1x, .memia(.src0q, .tmp0, .add_size), ._, ._ }, | ||
| 28471 | .{ ._, ._dqa, .mov, .memsia(.dst0x, .@"2", .tmp0, .add_size), .tmp1x, ._, ._ }, | ||
| 28472 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | ||
| 28473 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 28474 | } }, | ||
| 28475 | }, .{ | ||
| 28476 | .required_features = .{ .sse4_1, null, null, null }, | ||
| 28477 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .qword, .is = .dword } }, .any }, | ||
| 28478 | .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .xword, .is = .qword } }}, | ||
| 28479 | .patterns = &.{ | ||
| 28480 | .{ .src = .{ .mem, .none } }, | ||
| 28481 | }, | ||
| 28482 | .extra_temps = .{ | ||
| 28483 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 28484 | .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } }, | ||
| 28485 | .unused, | ||
| 28486 | .unused, | ||
| 28487 | .unused, | ||
| 28488 | .unused, | ||
| 28489 | .unused, | ||
| 28490 | .unused, | ||
| 28491 | .unused, | ||
| 28492 | }, | ||
| 28493 | .dst_temps = .{.mem}, | ||
| 28494 | .each = .{ .once = &.{ | ||
| 28495 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | ||
| 28496 | .{ .@"0:", .p_q, .movzxd, .tmp1x, .memia(.src0q, .tmp0, .add_size), ._, ._ }, | ||
| 28497 | .{ ._, ._dqa, .mov, .memsia(.dst0x, .@"2", .tmp0, .add_size), .tmp1x, ._, ._ }, | ||
| 28498 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | ||
| 28499 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 28500 | } }, | ||
| 28501 | }, .{ | ||
| 28502 | .required_features = .{ .@"64bit", null, null, null }, | ||
| 28503 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any }, | ||
| 28504 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }}, | ||
| 28505 | .patterns = &.{ | ||
| 28506 | .{ .src = .{ .to_mem, .none } }, | ||
| 28507 | }, | ||
| 28508 | .extra_temps = .{ | ||
| 28509 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 28510 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, | ||
| 28511 | .unused, | ||
| 28512 | .unused, | ||
| 28513 | .unused, | ||
| 28514 | .unused, | ||
| 28515 | .unused, | ||
| 28516 | .unused, | ||
| 28517 | .unused, | ||
| 28518 | }, | ||
| 28519 | .dst_temps = .{.mem}, | ||
| 28520 | .each = .{ .once = &.{ | ||
| 28521 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | ||
| 28522 | .{ .@"0:", ._, .movsxd, .tmp1q, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, | ||
| 28523 | .{ ._, ._, .mov, .memsia(.dst0q, .@"2", .tmp0, .add_unaligned_size), .tmp1q, ._, ._ }, | ||
| 28524 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | ||
| 28525 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 28526 | } }, | ||
| 28527 | }, .{ | ||
| 28528 | .required_features = .{ .@"64bit", null, null, null }, | ||
| 28529 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .dword, .is = .dword } }, .any }, | ||
| 28530 | .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .qword, .is = .qword } }}, | ||
| 28531 | .patterns = &.{ | ||
| 28532 | .{ .src = .{ .to_mem, .none } }, | ||
| 28533 | }, | ||
| 28534 | .extra_temps = .{ | ||
| 28535 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 28536 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, | ||
| 28537 | .unused, | ||
| 28538 | .unused, | ||
| 28539 | .unused, | ||
| 28540 | .unused, | ||
| 28541 | .unused, | ||
| 28542 | .unused, | ||
| 28543 | .unused, | ||
| 28544 | }, | ||
| 28545 | .dst_temps = .{.mem}, | ||
| 28546 | .each = .{ .once = &.{ | ||
| 28547 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | ||
| 28548 | .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, | ||
| 28549 | .{ ._, ._, .mov, .memsia(.dst0q, .@"2", .tmp0, .add_unaligned_size), .tmp1q, ._, ._ }, | ||
| 28550 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | ||
| 28551 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 28552 | } }, | ||
| 28553 | }, .{ | ||
| 28554 | .required_features = .{ .avx, null, null, null }, | ||
| 28555 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any }, | ||
| 28556 | .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .xword, .is = .xword } }}, | ||
| 28557 | .patterns = &.{ | ||
| 28558 | .{ .src = .{ .mem, .none } }, | ||
| 28559 | .{ .src = .{ .to_sse, .none } }, | ||
| 28560 | }, | ||
| 28561 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, | ||
| 28562 | .each = .{ .once = &.{ | ||
| 28563 | .{ ._, .vp_q, .movsxd, .dst0x, .src0q, ._, ._ }, | ||
| 28564 | .{ ._, .vp_q, .movsxd, .dst0x, .dst0q, ._, ._ }, | ||
| 28565 | } }, | ||
| 28566 | }, .{ | ||
| 28567 | .required_features = .{ .avx, null, null, null }, | ||
| 28568 | .src_constraints = .{ .{ .scalar_int = .{ .of = .dword, .is = .dword } }, .any }, | ||
| 28569 | .dst_constraints = .{.{ .scalar_int = .{ .of = .xword, .is = .xword } }}, | ||
| 28570 | .patterns = &.{ | ||
| 28571 | .{ .src = .{ .mem, .none } }, | ||
| 28572 | .{ .src = .{ .to_sse, .none } }, | ||
| 28573 | }, | ||
| 28574 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, | ||
| 28575 | .each = .{ .once = &.{ | ||
| 28576 | .{ ._, .vp_q, .movzxd, .dst0x, .src0q, ._, ._ }, | ||
| 28577 | .{ ._, .vp_q, .movzxd, .dst0x, .dst0q, ._, ._ }, | ||
| 28578 | } }, | ||
| 28579 | }, .{ | ||
| 28580 | .required_features = .{ .sse4_1, null, null, null }, | ||
| 28581 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any }, | ||
| 28582 | .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .xword, .is = .xword } }}, | ||
| 28583 | .patterns = &.{ | ||
| 28584 | .{ .src = .{ .mem, .none } }, | ||
| 28585 | .{ .src = .{ .to_sse, .none } }, | ||
| 28586 | }, | ||
| 28587 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, | ||
| 28588 | .each = .{ .once = &.{ | ||
| 28589 | .{ ._, .p_q, .movsxd, .dst0x, .src0q, ._, ._ }, | ||
| 28590 | .{ ._, .p_q, .movsxd, .dst0x, .dst0q, ._, ._ }, | ||
| 28591 | } }, | ||
| 28592 | }, .{ | ||
| 28593 | .required_features = .{ .sse4_1, null, null, null }, | ||
| 28594 | .src_constraints = .{ .{ .scalar_int = .{ .of = .dword, .is = .dword } }, .any }, | ||
| 28595 | .dst_constraints = .{.{ .scalar_int = .{ .of = .xword, .is = .xword } }}, | ||
| 28596 | .patterns = &.{ | ||
| 28597 | .{ .src = .{ .mem, .none } }, | ||
| 28598 | .{ .src = .{ .to_sse, .none } }, | ||
| 28599 | }, | ||
| 28600 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, | ||
| 28601 | .each = .{ .once = &.{ | ||
| 28602 | .{ ._, .p_q, .movzxd, .dst0x, .src0q, ._, ._ }, | ||
| 28603 | .{ ._, .p_q, .movzxd, .dst0x, .dst0q, ._, ._ }, | ||
| 28604 | } }, | ||
| 28605 | }, .{ | ||
| 28606 | .required_features = .{ .sse2, null, null, null }, | ||
| 28607 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any }, | ||
| 28608 | .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .xword, .is = .xword } }}, | ||
| 28609 | .patterns = &.{ | ||
| 28610 | .{ .src = .{ .to_mut_sse, .none } }, | ||
| 28611 | }, | ||
| 28612 | .extra_temps = .{ | ||
| 28613 | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, | ||
| 28614 | .unused, | ||
| 28615 | .unused, | ||
| 28616 | .unused, | ||
| 28617 | .unused, | ||
| 28618 | .unused, | ||
| 28619 | .unused, | ||
| 28620 | .unused, | ||
| 28621 | .unused, | ||
| 28622 | }, | ||
| 28623 | .dst_temps = .{.{ .ref = .src0 }}, | ||
| 28624 | .each = .{ .once = &.{ | ||
| 28625 | .{ ._, .p_, .xor, .tmp0x, .tmp0x, ._, ._ }, | ||
| 28626 | .{ ._, .p_d, .cmpgt, .tmp0x, .src0x, ._, ._ }, | ||
| 28627 | .{ ._, .p_, .unpckldq, .dst0x, .tmp0x, ._, ._ }, | ||
| 28628 | .{ ._, .p_, .unpckldq, .tmp0x, .tmp0x, ._, ._ }, | ||
| 28629 | .{ ._, .p_, .unpcklqdq, .dst0x, .tmp0x, ._, ._ }, | ||
| 28630 | } }, | ||
| 28631 | }, .{ | ||
| 28632 | .required_features = .{ .sse2, null, null, null }, | ||
| 28633 | .src_constraints = .{ .{ .scalar_int = .{ .of = .dword, .is = .dword } }, .any }, | ||
| 28634 | .dst_constraints = .{.{ .scalar_int = .{ .of = .xword, .is = .xword } }}, | ||
| 28635 | .patterns = &.{ | ||
| 28636 | .{ .src = .{ .to_mut_sse, .none } }, | ||
| 28637 | }, | ||
| 28638 | .extra_temps = .{ | ||
| 28639 | .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } }, | ||
| 28640 | .unused, | ||
| 28641 | .unused, | ||
| 28642 | .unused, | ||
| 28643 | .unused, | ||
| 28644 | .unused, | ||
| 28645 | .unused, | ||
| 28646 | .unused, | ||
| 28647 | .unused, | ||
| 28648 | }, | ||
| 28649 | .dst_temps = .{.{ .ref = .src0 }}, | ||
| 28650 | .each = .{ .once = &.{ | ||
| 28651 | .{ ._, .p_, .xor, .tmp0x, .tmp0x, ._, ._ }, | ||
| 28652 | .{ ._, .p_, .unpckldq, .dst0x, .tmp0x, ._, ._ }, | ||
| 28653 | .{ ._, .p_, .unpcklqdq, .dst0x, .tmp0x, ._, ._ }, | ||
| 28654 | } }, | ||
| 28655 | }, .{ | ||
| 28656 | .required_features = .{ .@"64bit", null, null, null }, | ||
| 28657 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any }, | ||
| 28658 | .dst_constraints = .{.any_scalar_signed_int}, | ||
| 28659 | .patterns = &.{ | ||
| 28660 | .{ .src = .{ .to_mem, .none } }, | ||
| 28661 | }, | ||
| 28662 | .extra_temps = .{ | ||
| 28663 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 28664 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | ||
| 28665 | .{ .type = .i64, .kind = .{ .reg = .rax } }, | ||
| 28666 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, | ||
| 28667 | .unused, | ||
| 28668 | .unused, | ||
| 28669 | .unused, | ||
| 28670 | .unused, | ||
| 28671 | .unused, | ||
| 28672 | }, | ||
| 28673 | .dst_temps = .{.mem}, | ||
| 28674 | .each = .{ .once = &.{ | ||
| 28675 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | ||
| 28676 | .{ ._, ._, .lea, .tmp1q, .mem(.dst0), ._, ._ }, | ||
| 28677 | .{ .@"0:", ._, .movsxd, .tmp2q, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, | ||
| 28678 | .{ ._, ._sq, .sto, ._, ._, ._, ._ }, | ||
| 28679 | .{ ._, ._r, .sa, .tmp2q, .si(63), ._, ._ }, | ||
| 28680 | .{ ._, ._, .mov, .tmp3d, .sia(-1, .dst0, .add_elem_size_div_8), ._, ._ }, | ||
| 28681 | .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ }, | ||
| 28682 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | ||
| 28683 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 28684 | } }, | ||
| 28685 | }, .{ | ||
| 28686 | .required_features = .{ .@"64bit", null, null, null }, | ||
| 28687 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .dword, .is = .dword } }, .any }, | ||
| 28688 | .dst_constraints = .{.any_scalar_int}, | ||
| 28689 | .patterns = &.{ | ||
| 28690 | .{ .src = .{ .to_mem, .none } }, | ||
| 28691 | }, | ||
| 28692 | .extra_temps = .{ | ||
| 28693 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | ||
| 28694 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | ||
| 28695 | .{ .type = .u64, .kind = .{ .reg = .rax } }, | ||
| 28696 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, | ||
| 28697 | .unused, | ||
| 28698 | .unused, | ||
| 28699 | .unused, | ||
| 28700 | .unused, | ||
| 28701 | .unused, | ||
| 28702 | }, | ||
| 28703 | .dst_temps = .{.mem}, | ||
| 28704 | .each = .{ .once = &.{ | ||
| 28705 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | ||
| 28706 | .{ ._, ._, .lea, .tmp1q, .mem(.dst0), ._, ._ }, | ||
| 28707 | .{ .@"0:", ._, .mov, .tmp2d, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, | ||
| 28708 | .{ ._, ._sq, .sto, ._, ._, ._, ._ }, | ||
| 28709 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, | ||
| 28710 | .{ ._, ._, .mov, .tmp3d, .sia(-1, .dst0, .add_elem_size_div_8), ._, ._ }, | ||
| 28711 | .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ }, | ||
| 28712 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | ||
| 28713 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | ||
| 28714 | } }, | ||
| 28715 | }, .{ | ||
| 28716 | .required_features = .{ .@"64bit", .slow_incdec, null, null }, | ||
| 28717 | .src_constraints = .{ .any_scalar_signed_int, .any }, | ||
| 28718 | .dst_constraints = .{.any_scalar_signed_int}, | ||
| 28719 | .patterns = &.{ | ||
| 28720 | .{ .src = .{ .to_mem, .none } }, | ||
| 28721 | }, | ||
| 28722 | .extra_temps = .{ | ||
| 28723 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | ||
| 28724 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, | ||
| 28725 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | ||
| 28726 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, | ||
| 28727 | .{ .type = .i64, .kind = .{ .reg = .rax } }, | ||
| 28728 | .unused, | ||
| 28729 | .unused, | ||
| 28730 | .unused, | ||
| 28731 | .unused, | ||
| 28732 | }, | ||
| 28733 | .dst_temps = .{.mem}, | ||
| 28734 | .clobbers = .{ .eflags = true }, | ||
| 28735 | .each = .{ .once = &.{ | ||
| 28736 | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, | ||
| 28737 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, | ||
| 28738 | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, | ||
| 28739 | .{ .@"0:", ._, .mov, .tmp3d, .sia(-1, .src0, .add_elem_size_div_8), ._, ._ }, | ||
| 28740 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, | ||
| 28741 | .{ ._, ._sq, .lod, ._, ._, ._, ._ }, | ||
| 28742 | .{ ._, ._sq, .sto, ._, ._, ._, ._ }, | ||
| 28743 | .{ ._, ._r, .sa, .tmp4q, .ui(63), ._, ._ }, | ||
| 28744 | .{ ._, ._, .mov, .tmp3d, .sa2(.dst0, .src0, .add_delta_elem_size_div_8), ._, ._ }, | ||
| 28745 | .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ }, | ||
| 28746 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, | ||
| 28747 | .{ ._, ._a, .j, .@"0b", ._, ._, ._ }, | ||
| 28748 | } }, | ||
| 28749 | }, .{ | ||
| 28750 | .required_features = .{ .@"64bit", null, null, null }, | ||
| 28751 | .src_constraints = .{ .any_scalar_signed_int, .any }, | ||
| 28752 | .dst_constraints = .{.any_scalar_signed_int}, | ||
| 28753 | .patterns = &.{ | ||
| 28754 | .{ .src = .{ .to_mem, .none } }, | ||
| 28755 | }, | ||
| 28756 | .extra_temps = .{ | ||
| 28757 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | ||
| 28758 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, | ||
| 28759 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | ||
| 28760 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, | ||
| 28761 | .{ .type = .i64, .kind = .{ .reg = .rax } }, | ||
| 28762 | .unused, | ||
| 28763 | .unused, | ||
| 28764 | .unused, | ||
| 28765 | .unused, | ||
| 28766 | }, | ||
| 28767 | .dst_temps = .{.mem}, | ||
| 28768 | .clobbers = .{ .eflags = true }, | ||
| 28769 | .each = .{ .once = &.{ | ||
| 28770 | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, | ||
| 28771 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, | ||
| 28772 | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, | ||
| 28773 | .{ .@"0:", ._, .mov, .tmp3d, .sia(-1, .src0, .add_elem_size_div_8), ._, ._ }, | ||
| 28774 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, | ||
| 28775 | .{ ._, ._sq, .lod, ._, ._, ._, ._ }, | ||
| 28776 | .{ ._, ._sq, .sto, ._, ._, ._, ._ }, | ||
| 28777 | .{ ._, ._r, .sa, .tmp4q, .ui(63), ._, ._ }, | ||
| 28778 | .{ ._, ._, .mov, .tmp3d, .sa2(.dst0, .src0, .add_delta_elem_size_div_8), ._, ._ }, | ||
| 28779 | .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ }, | ||
| 28780 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, | ||
| 28781 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, | ||
| 28782 | } }, | ||
| 28783 | }, .{ | ||
| 28784 | .required_features = .{ .@"64bit", .slow_incdec, null, null }, | ||
| 28785 | .src_constraints = .{ .any_scalar_int, .any }, | ||
| 28786 | .dst_constraints = .{.any_scalar_int}, | ||
| 28787 | .patterns = &.{ | ||
| 28788 | .{ .src = .{ .to_mem, .none } }, | ||
| 28789 | }, | ||
| 28790 | .extra_temps = .{ | ||
| 28791 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | ||
| 28792 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, | ||
| 28793 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | ||
| 28794 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, | ||
| 28795 | .{ .type = .u64, .kind = .{ .reg = .rax } }, | ||
| 28796 | .unused, | ||
| 28797 | .unused, | ||
| 28798 | .unused, | ||
| 28799 | .unused, | ||
| 28800 | }, | ||
| 28801 | .dst_temps = .{.mem}, | ||
| 28802 | .clobbers = .{ .eflags = true }, | ||
| 28803 | .each = .{ .once = &.{ | ||
| 28804 | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, | ||
| 28805 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, | ||
| 28806 | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, | ||
| 28807 | .{ .@"0:", ._, .mov, .tmp3d, .sa(.src0, .add_elem_size_div_8), ._, ._ }, | ||
| 28808 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, | ||
| 28809 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, | ||
| 28810 | .{ ._, ._, .mov, .tmp3d, .sa2(.dst0, .src0, .add_delta_elem_size_div_8), ._, ._ }, | ||
| 28811 | .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ }, | ||
| 28812 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, | ||
| 28813 | .{ ._, ._a, .j, .@"0b", ._, ._, ._ }, | ||
| 28814 | } }, | ||
| 28815 | }, .{ | ||
| 28816 | .required_features = .{ .@"64bit", null, null, null }, | ||
| 28817 | .src_constraints = .{ .any_scalar_int, .any }, | ||
| 28818 | .dst_constraints = .{.any_scalar_int}, | ||
| 28819 | .patterns = &.{ | ||
| 28820 | .{ .src = .{ .to_mem, .none } }, | ||
| 28821 | }, | ||
| 28822 | .extra_temps = .{ | ||
| 28823 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | ||
| 28824 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, | ||
| 28825 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | ||
| 28826 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, | ||
| 28827 | .{ .type = .u64, .kind = .{ .reg = .rax } }, | ||
| 28828 | .unused, | ||
| 28829 | .unused, | ||
| 28830 | .unused, | ||
| 28831 | .unused, | ||
| 28832 | }, | ||
| 28833 | .dst_temps = .{.mem}, | ||
| 28834 | .clobbers = .{ .eflags = true }, | ||
| 28835 | .each = .{ .once = &.{ | ||
| 28836 | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, | ||
| 28837 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, | ||
| 28838 | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, | ||
| 28839 | .{ .@"0:", ._, .mov, .tmp3d, .sa(.src0, .add_elem_size_div_8), ._, ._ }, | ||
| 28840 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, | ||
| 28841 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, | ||
| 28842 | .{ ._, ._, .mov, .tmp3d, .sa2(.dst0, .src0, .add_delta_elem_size_div_8), ._, ._ }, | ||
| 28843 | .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ }, | ||
| 28844 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, | ||
| 28845 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, | ||
| 28846 | } }, | ||
| 28847 | } }) catch |err| switch (err) { | ||
| 21670 | error.SelectFailed => return cg.fail("failed to select {s} {} {} {}", .{ | 28848 | error.SelectFailed => return cg.fail("failed to select {s} {} {} {}", .{ |
| 21671 | @tagName(air_tag), | 28849 | @tagName(air_tag), |
| 21672 | cg.typeOf(bin_op.lhs).fmt(pt), | 28850 | dst_ty.fmt(pt), |
| 28851 | src_ty.fmt(pt), | ||
| 21673 | ops[0].tracking(cg), | 28852 | ops[0].tracking(cg), |
| 21674 | ops[1].tracking(cg), | ||
| 21675 | }), | 28853 | }), |
| 21676 | else => |e| return e, | 28854 | else => |e| return e, |
| 21677 | }; | 28855 | }; |
| 21678 | if (opt_info) |*oi| { | 28856 | try res[0].finish(inst, &.{ty_op.operand}, &ops, cg); |
| 21679 | for (ops) |op| for (res) |r| { | ||
| 21680 | if (op.index == r.index) break; | ||
| 21681 | } else try op.die(cg); | ||
| 21682 | try cg.genCopy(.bool, oi.res[0].tracking(cg).short, res[0].tracking(cg).short, .{}); | ||
| 21683 | try res[0].die(cg); | ||
| 21684 | res[0] = oi.res[0]; | ||
| 21685 | try cg.restoreState(oi.state, &oi.deaths, .{ | ||
| 21686 | .emit_instructions = true, | ||
| 21687 | .update_tracking = true, | ||
| 21688 | .resurrect = true, | ||
| 21689 | .close_scope = true, | ||
| 21690 | }); | ||
| 21691 | cg.performReloc(oi.reloc); | ||
| 21692 | @memset(&ops, res[0]); | ||
| 21693 | } | ||
| 21694 | try res[0].finish(inst, &.{ bin_op.lhs, bin_op.rhs }, &ops, cg); | ||
| 21695 | }, | ||
| 21696 | |||
| 21697 | .cond_br => try cg.airCondBr(inst), | ||
| 21698 | .switch_br => try cg.airSwitchBr(inst), | ||
| 21699 | .loop_switch_br => try cg.airLoopSwitchBr(inst), | ||
| 21700 | .switch_dispatch => try cg.airSwitchDispatch(inst), | ||
| 21701 | .@"try", .try_cold => try cg.airTry(inst), | ||
| 21702 | .try_ptr, .try_ptr_cold => try cg.airTryPtr(inst), | ||
| 21703 | .dbg_stmt => if (cg.debug_output != .none) { | ||
| 21704 | const dbg_stmt = air_datas[@intFromEnum(inst)].dbg_stmt; | ||
| 21705 | _ = try cg.addInst(.{ | ||
| 21706 | .tag = .pseudo, | ||
| 21707 | .ops = .pseudo_dbg_line_stmt_line_column, | ||
| 21708 | .data = .{ .line_column = .{ | ||
| 21709 | .line = dbg_stmt.line, | ||
| 21710 | .column = dbg_stmt.column, | ||
| 21711 | } }, | ||
| 21712 | }); | ||
| 21713 | }, | ||
| 21714 | .dbg_empty_stmt => if (cg.debug_output != .none) { | ||
| 21715 | if (cg.mir_instructions.len > 0) { | ||
| 21716 | const prev_mir_op = &cg.mir_instructions.items(.ops)[cg.mir_instructions.len - 1]; | ||
| 21717 | if (prev_mir_op.* == .pseudo_dbg_line_line_column) | ||
| 21718 | prev_mir_op.* = .pseudo_dbg_line_stmt_line_column; | ||
| 21719 | } | ||
| 21720 | try cg.asmOpOnly(.{ ._, .nop }); | ||
| 21721 | }, | ||
| 21722 | .dbg_inline_block => { | ||
| 21723 | const ty_pl = air_datas[@intFromEnum(inst)].ty_pl; | ||
| 21724 | const extra = cg.air.extraData(Air.DbgInlineBlock, ty_pl.payload); | ||
| 21725 | const old_inline_func = cg.inline_func; | ||
| 21726 | defer cg.inline_func = old_inline_func; | ||
| 21727 | cg.inline_func = extra.data.func; | ||
| 21728 | if (cg.debug_output != .none) _ = try cg.addInst(.{ | ||
| 21729 | .tag = .pseudo, | ||
| 21730 | .ops = .pseudo_dbg_enter_inline_func, | ||
| 21731 | .data = .{ .func = extra.data.func }, | ||
| 21732 | }); | ||
| 21733 | try cg.lowerBlock(inst, @ptrCast(cg.air.extra[extra.end..][0..extra.data.body_len])); | ||
| 21734 | if (cg.debug_output != .none) _ = try cg.addInst(.{ | ||
| 21735 | .tag = .pseudo, | ||
| 21736 | .ops = .pseudo_dbg_leave_inline_func, | ||
| 21737 | .data = .{ .func = old_inline_func }, | ||
| 21738 | }); | ||
| 21739 | }, | ||
| 21740 | .dbg_var_ptr, | ||
| 21741 | .dbg_var_val, | ||
| 21742 | .dbg_arg_inline, | ||
| 21743 | => if (use_old) try cg.airDbgVar(inst) else if (cg.debug_output != .none) { | ||
| 21744 | const pl_op = air_datas[@intFromEnum(inst)].pl_op; | ||
| 21745 | var ops = try cg.tempsFromOperands(inst, .{pl_op.operand}); | ||
| 21746 | var mcv = ops[0].tracking(cg).short; | ||
| 21747 | switch (mcv) { | ||
| 21748 | else => {}, | ||
| 21749 | .eflags => |cc| switch (cc) { | ||
| 21750 | else => {}, | ||
| 21751 | // These values would self destruct. Maybe we make them use their | ||
| 21752 | // turing complete dwarf expression interpreters for once? | ||
| 21753 | .z_and_np, .nz_or_p => { | ||
| 21754 | try cg.spillEflagsIfOccupied(); | ||
| 21755 | mcv = ops[0].tracking(cg).short; | ||
| 21756 | }, | ||
| 21757 | }, | ||
| 21758 | } | ||
| 21759 | try cg.genLocalDebugInfo(inst, ops[0].tracking(cg).short); | ||
| 21760 | try ops[0].die(cg); | ||
| 21761 | }, | ||
| 21762 | .is_null_ptr => if (use_old) try cg.airIsNullPtr(inst) else { | ||
| 21763 | const un_op = air_datas[@intFromEnum(inst)].un_op; | ||
| 21764 | const opt_ty = cg.typeOf(un_op).childType(zcu); | ||
| 21765 | const opt_repr_is_pl = opt_ty.optionalReprIsPayload(zcu); | ||
| 21766 | const opt_child_ty = opt_ty.optionalChild(zcu); | ||
| 21767 | const opt_child_abi_size: u31 = @intCast(opt_child_ty.abiSize(zcu)); | ||
| 21768 | var ops = try cg.tempsFromOperands(inst, .{un_op}); | ||
| 21769 | if (!opt_repr_is_pl) try ops[0].toOffset(opt_child_abi_size, cg); | ||
| 21770 | while (try ops[0].toLea(cg)) {} | ||
| 21771 | try cg.asmMemoryImmediate( | ||
| 21772 | .{ ._, .cmp }, | ||
| 21773 | try ops[0].tracking(cg).short.deref().mem(cg, .{ .size = if (!opt_repr_is_pl) | ||
| 21774 | .byte | ||
| 21775 | else if (opt_child_ty.isSlice(zcu)) | ||
| 21776 | .qword | ||
| 21777 | else | ||
| 21778 | .fromSize(opt_child_abi_size) }), | ||
| 21779 | .u(0), | ||
| 21780 | ); | ||
| 21781 | const is_null = try cg.tempInit(.bool, .{ .eflags = .e }); | ||
| 21782 | try is_null.finish(inst, &.{un_op}, &ops, cg); | ||
| 21783 | }, | ||
| 21784 | .is_non_null_ptr => if (use_old) try cg.airIsNonNullPtr(inst) else { | ||
| 21785 | const un_op = air_datas[@intFromEnum(inst)].un_op; | ||
| 21786 | const opt_ty = cg.typeOf(un_op).childType(zcu); | ||
| 21787 | const opt_repr_is_pl = opt_ty.optionalReprIsPayload(zcu); | ||
| 21788 | const opt_child_ty = opt_ty.optionalChild(zcu); | ||
| 21789 | const opt_child_abi_size: u31 = @intCast(opt_child_ty.abiSize(zcu)); | ||
| 21790 | var ops = try cg.tempsFromOperands(inst, .{un_op}); | ||
| 21791 | if (!opt_repr_is_pl) try ops[0].toOffset(opt_child_abi_size, cg); | ||
| 21792 | while (try ops[0].toLea(cg)) {} | ||
| 21793 | try cg.asmMemoryImmediate( | ||
| 21794 | .{ ._, .cmp }, | ||
| 21795 | try ops[0].tracking(cg).short.deref().mem(cg, .{ .size = if (!opt_repr_is_pl) | ||
| 21796 | .byte | ||
| 21797 | else if (opt_child_ty.isSlice(zcu)) | ||
| 21798 | .qword | ||
| 21799 | else | ||
| 21800 | .fromSize(opt_child_abi_size) }), | ||
| 21801 | .u(0), | ||
| 21802 | ); | ||
| 21803 | const is_non_null = try cg.tempInit(.bool, .{ .eflags = .ne }); | ||
| 21804 | try is_non_null.finish(inst, &.{un_op}, &ops, cg); | ||
| 21805 | }, | ||
| 21806 | .is_err_ptr => if (use_old) try cg.airIsErrPtr(inst) else { | ||
| 21807 | const un_op = air_datas[@intFromEnum(inst)].un_op; | ||
| 21808 | const eu_ty = cg.typeOf(un_op).childType(zcu); | ||
| 21809 | const eu_err_ty = eu_ty.errorUnionSet(zcu); | ||
| 21810 | const eu_pl_ty = eu_ty.errorUnionPayload(zcu); | ||
| 21811 | const eu_err_off: i32 = @intCast(codegen.errUnionErrorOffset(eu_pl_ty, zcu)); | ||
| 21812 | var ops = try cg.tempsFromOperands(inst, .{un_op}); | ||
| 21813 | try ops[0].toOffset(eu_err_off, cg); | ||
| 21814 | while (try ops[0].toLea(cg)) {} | ||
| 21815 | try cg.asmMemoryImmediate( | ||
| 21816 | .{ ._, .cmp }, | ||
| 21817 | try ops[0].tracking(cg).short.deref().mem(cg, .{ .size = cg.memSize(eu_err_ty) }), | ||
| 21818 | .u(0), | ||
| 21819 | ); | ||
| 21820 | const is_err = try cg.tempInit(.bool, .{ .eflags = .ne }); | ||
| 21821 | try is_err.finish(inst, &.{un_op}, &ops, cg); | ||
| 21822 | }, | ||
| 21823 | .is_non_err_ptr => if (use_old) try cg.airIsNonErrPtr(inst) else { | ||
| 21824 | const un_op = air_datas[@intFromEnum(inst)].un_op; | ||
| 21825 | const eu_ty = cg.typeOf(un_op).childType(zcu); | ||
| 21826 | const eu_err_ty = eu_ty.errorUnionSet(zcu); | ||
| 21827 | const eu_pl_ty = eu_ty.errorUnionPayload(zcu); | ||
| 21828 | const eu_err_off: i32 = @intCast(codegen.errUnionErrorOffset(eu_pl_ty, zcu)); | ||
| 21829 | var ops = try cg.tempsFromOperands(inst, .{un_op}); | ||
| 21830 | try ops[0].toOffset(eu_err_off, cg); | ||
| 21831 | while (try ops[0].toLea(cg)) {} | ||
| 21832 | try cg.asmMemoryImmediate( | ||
| 21833 | .{ ._, .cmp }, | ||
| 21834 | try ops[0].tracking(cg).short.deref().mem(cg, .{ .size = cg.memSize(eu_err_ty) }), | ||
| 21835 | .u(0), | ||
| 21836 | ); | ||
| 21837 | const is_non_err = try cg.tempInit(.bool, .{ .eflags = .e }); | ||
| 21838 | try is_non_err.finish(inst, &.{un_op}, &ops, cg); | ||
| 21839 | }, | ||
| 21840 | .load => if (use_old) try cg.airLoad(inst) else fallback: { | ||
| 21841 | const ty_op = air_datas[@intFromEnum(inst)].ty_op; | ||
| 21842 | const val_ty = ty_op.ty.toType(); | ||
| 21843 | const ptr_ty = cg.typeOf(ty_op.operand); | ||
| 21844 | const ptr_info = ptr_ty.ptrInfo(zcu); | ||
| 21845 | if (ptr_info.packed_offset.host_size > 0 and | ||
| 21846 | (ptr_info.flags.vector_index == .none or val_ty.toIntern() == .bool_type)) | ||
| 21847 | break :fallback try cg.airLoad(inst); | ||
| 21848 | var ops = try cg.tempsFromOperands(inst, .{ty_op.operand}); | ||
| 21849 | const res = try ops[0].load(val_ty, .{ | ||
| 21850 | .disp = switch (ptr_info.flags.vector_index) { | ||
| 21851 | .none => 0, | ||
| 21852 | .runtime => unreachable, | ||
| 21853 | else => |vector_index| @intCast(val_ty.abiSize(zcu) * @intFromEnum(vector_index)), | ||
| 21854 | }, | ||
| 21855 | }, cg); | ||
| 21856 | try res.finish(inst, &.{ty_op.operand}, &ops, cg); | ||
| 21857 | }, | ||
| 21858 | .int_from_ptr => if (use_old) try cg.airIntFromPtr(inst) else { | ||
| 21859 | const un_op = air_datas[@intFromEnum(inst)].un_op; | ||
| 21860 | var ops = try cg.tempsFromOperands(inst, .{un_op}); | ||
| 21861 | try ops[0].toSlicePtr(cg); | ||
| 21862 | try ops[0].finish(inst, &.{un_op}, &ops, cg); | ||
| 21863 | }, | ||
| 21864 | .int_from_bool => if (use_old) try cg.airIntFromBool(inst) else { | ||
| 21865 | const un_op = air_datas[@intFromEnum(inst)].un_op; | ||
| 21866 | const ops = try cg.tempsFromOperands(inst, .{un_op}); | ||
| 21867 | try ops[0].finish(inst, &.{un_op}, &ops, cg); | ||
| 21868 | }, | ||
| 21869 | .ret => try cg.airRet(inst, false), | ||
| 21870 | .ret_safe => try cg.airRet(inst, true), | ||
| 21871 | .ret_load => try cg.airRetLoad(inst), | ||
| 21872 | .store, .store_safe => |air_tag| if (use_old) try cg.airStore(inst, switch (air_tag) { | ||
| 21873 | else => unreachable, | ||
| 21874 | .store => false, | ||
| 21875 | .store_safe => true, | ||
| 21876 | }) else fallback: { | ||
| 21877 | const bin_op = air_datas[@intFromEnum(inst)].bin_op; | ||
| 21878 | const ptr_ty = cg.typeOf(bin_op.lhs); | ||
| 21879 | const ptr_info = ptr_ty.ptrInfo(zcu); | ||
| 21880 | const val_ty = cg.typeOf(bin_op.rhs); | ||
| 21881 | if (ptr_info.packed_offset.host_size > 0 and | ||
| 21882 | (ptr_info.flags.vector_index == .none or val_ty.toIntern() == .bool_type)) | ||
| 21883 | break :fallback try cg.airStore(inst, switch (air_tag) { | ||
| 21884 | else => unreachable, | ||
| 21885 | .store => false, | ||
| 21886 | .store_safe => true, | ||
| 21887 | }); | ||
| 21888 | var ops = try cg.tempsFromOperands(inst, .{ bin_op.lhs, bin_op.rhs }); | ||
| 21889 | try ops[0].store(&ops[1], .{ | ||
| 21890 | .disp = switch (ptr_info.flags.vector_index) { | ||
| 21891 | .none => 0, | ||
| 21892 | .runtime => unreachable, | ||
| 21893 | else => |vector_index| @intCast(val_ty.abiSize(zcu) * @intFromEnum(vector_index)), | ||
| 21894 | }, | ||
| 21895 | .safe = switch (air_tag) { | ||
| 21896 | else => unreachable, | ||
| 21897 | .store => false, | ||
| 21898 | .store_safe => true, | ||
| 21899 | }, | ||
| 21900 | }, cg); | ||
| 21901 | for (ops) |op| try op.die(cg); | ||
| 21902 | }, | 28857 | }, |
| 21903 | .unreach => {}, | ||
| 21904 | .optional_payload_ptr => if (use_old) try cg.airOptionalPayloadPtr(inst) else { | 28858 | .optional_payload_ptr => if (use_old) try cg.airOptionalPayloadPtr(inst) else { |
| 21905 | const ty_op = air_datas[@intFromEnum(inst)].ty_op; | 28859 | const ty_op = air_datas[@intFromEnum(inst)].ty_op; |
| 21906 | const ops = try cg.tempsFromOperands(inst, .{ty_op.operand}); | 28860 | const ops = try cg.tempsFromOperands(inst, .{ty_op.operand}); |
| ... | @@ -22080,7 +29034,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -22080,7 +29034,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 22080 | }, | 29034 | }, |
| 22081 | .dst_temps = .{.{ .rc = .general_purpose }}, | 29035 | .dst_temps = .{.{ .rc = .general_purpose }}, |
| 22082 | .each = .{ .once = &.{ | 29036 | .each = .{ .once = &.{ |
| 22083 | .{ ._, ._, .movzx, .dst0d, .leaa(.byte, .src0, .add_src0_elem_size_times_src1), ._, ._ }, | 29037 | .{ ._, ._, .movzx, .dst0d, .leaa(.src0b, .add_src0_elem_size_times_src1), ._, ._ }, |
| 22084 | } }, | 29038 | } }, |
| 22085 | }, .{ | 29039 | }, .{ |
| 22086 | .dst_constraints = .{.{ .int = .byte }}, | 29040 | .dst_constraints = .{.{ .int = .byte }}, |
| ... | @@ -22089,7 +29043,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -22089,7 +29043,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 22089 | }, | 29043 | }, |
| 22090 | .dst_temps = .{.{ .rc = .general_purpose }}, | 29044 | .dst_temps = .{.{ .rc = .general_purpose }}, |
| 22091 | .each = .{ .once = &.{ | 29045 | .each = .{ .once = &.{ |
| 22092 | .{ ._, ._, .movzx, .dst0d, .leai(.byte, .src0, .src1), ._, ._ }, | 29046 | .{ ._, ._, .movzx, .dst0d, .leai(.src0b, .src1), ._, ._ }, |
| 22093 | } }, | 29047 | } }, |
| 22094 | }, .{ | 29048 | }, .{ |
| 22095 | .dst_constraints = .{.{ .int = .word }}, | 29049 | .dst_constraints = .{.{ .int = .word }}, |
| ... | @@ -22098,7 +29052,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -22098,7 +29052,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 22098 | }, | 29052 | }, |
| 22099 | .dst_temps = .{.{ .rc = .general_purpose }}, | 29053 | .dst_temps = .{.{ .rc = .general_purpose }}, |
| 22100 | .each = .{ .once = &.{ | 29054 | .each = .{ .once = &.{ |
| 22101 | .{ ._, ._, .movzx, .dst0d, .leaa(.word, .src0, .add_src0_elem_size_times_src1), ._, ._ }, | 29055 | .{ ._, ._, .movzx, .dst0d, .leaa(.src0w, .add_src0_elem_size_times_src1), ._, ._ }, |
| 22102 | } }, | 29056 | } }, |
| 22103 | }, .{ | 29057 | }, .{ |
| 22104 | .dst_constraints = .{.{ .int = .word }}, | 29058 | .dst_constraints = .{.{ .int = .word }}, |
| ... | @@ -22107,7 +29061,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -22107,7 +29061,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 22107 | }, | 29061 | }, |
| 22108 | .dst_temps = .{.{ .rc = .general_purpose }}, | 29062 | .dst_temps = .{.{ .rc = .general_purpose }}, |
| 22109 | .each = .{ .once = &.{ | 29063 | .each = .{ .once = &.{ |
| 22110 | .{ ._, ._, .movzx, .dst0d, .leasi(.word, .src0, .@"2", .src1), ._, ._ }, | 29064 | .{ ._, ._, .movzx, .dst0d, .leasi(.src0w, .@"2", .src1), ._, ._ }, |
| 22111 | } }, | 29065 | } }, |
| 22112 | }, .{ | 29066 | }, .{ |
| 22113 | .dst_constraints = .{.{ .int = .dword }}, | 29067 | .dst_constraints = .{.{ .int = .dword }}, |
| ... | @@ -22116,7 +29070,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -22116,7 +29070,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 22116 | }, | 29070 | }, |
| 22117 | .dst_temps = .{.{ .rc = .general_purpose }}, | 29071 | .dst_temps = .{.{ .rc = .general_purpose }}, |
| 22118 | .each = .{ .once = &.{ | 29072 | .each = .{ .once = &.{ |
| 22119 | .{ ._, ._, .mov, .dst0d, .leaa(.dword, .src0, .add_src0_elem_size_times_src1), ._, ._ }, | 29073 | .{ ._, ._, .mov, .dst0d, .leaa(.src0d, .add_src0_elem_size_times_src1), ._, ._ }, |
| 22120 | } }, | 29074 | } }, |
| 22121 | }, .{ | 29075 | }, .{ |
| 22122 | .dst_constraints = .{.{ .int = .dword }}, | 29076 | .dst_constraints = .{.{ .int = .dword }}, |
| ... | @@ -22125,7 +29079,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -22125,7 +29079,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 22125 | }, | 29079 | }, |
| 22126 | .dst_temps = .{.{ .rc = .general_purpose }}, | 29080 | .dst_temps = .{.{ .rc = .general_purpose }}, |
| 22127 | .each = .{ .once = &.{ | 29081 | .each = .{ .once = &.{ |
| 22128 | .{ ._, ._, .mov, .dst0d, .leasi(.dword, .src0, .@"4", .src1), ._, ._ }, | 29082 | .{ ._, ._, .mov, .dst0d, .leasi(.src0d, .@"4", .src1), ._, ._ }, |
| 22129 | } }, | 29083 | } }, |
| 22130 | }, .{ | 29084 | }, .{ |
| 22131 | .dst_constraints = .{.{ .int = .qword }}, | 29085 | .dst_constraints = .{.{ .int = .qword }}, |
| ... | @@ -22134,7 +29088,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -22134,7 +29088,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 22134 | }, | 29088 | }, |
| 22135 | .dst_temps = .{.{ .rc = .general_purpose }}, | 29089 | .dst_temps = .{.{ .rc = .general_purpose }}, |
| 22136 | .each = .{ .once = &.{ | 29090 | .each = .{ .once = &.{ |
| 22137 | .{ ._, ._, .mov, .dst0q, .leaa(.qword, .src0, .add_src0_elem_size_times_src1), ._, ._ }, | 29091 | .{ ._, ._, .mov, .dst0q, .leaa(.src0q, .add_src0_elem_size_times_src1), ._, ._ }, |
| 22138 | } }, | 29092 | } }, |
| 22139 | }, .{ | 29093 | }, .{ |
| 22140 | .required_features = .{ .@"64bit", null, null, null }, | 29094 | .required_features = .{ .@"64bit", null, null, null }, |
| ... | @@ -22144,7 +29098,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -22144,7 +29098,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 22144 | }, | 29098 | }, |
| 22145 | .dst_temps = .{.{ .rc = .general_purpose }}, | 29099 | .dst_temps = .{.{ .rc = .general_purpose }}, |
| 22146 | .each = .{ .once = &.{ | 29100 | .each = .{ .once = &.{ |
| 22147 | .{ ._, ._, .mov, .dst0q, .leasi(.qword, .src0, .@"8", .src1), ._, ._ }, | 29101 | .{ ._, ._, .mov, .dst0q, .leasi(.src0q, .@"8", .src1), ._, ._ }, |
| 22148 | } }, | 29102 | } }, |
| 22149 | } }) catch |err| switch (err) { | 29103 | } }) catch |err| switch (err) { |
| 22150 | error.SelectFailed => { | 29104 | error.SelectFailed => { |
| ... | @@ -23562,19 +30516,6 @@ fn airTrunc(self: *CodeGen, inst: Air.Inst.Index) !void { | ... | @@ -23562,19 +30516,6 @@ fn airTrunc(self: *CodeGen, inst: Air.Inst.Index) !void { |
| 23562 | return self.finishAir(inst, result, .{ ty_op.operand, .none, .none }); | 30516 | return self.finishAir(inst, result, .{ ty_op.operand, .none, .none }); |
| 23563 | } | 30517 | } |
| 23564 | 30518 | ||
| 23565 | fn airIntFromBool(self: *CodeGen, inst: Air.Inst.Index) !void { | ||
| 23566 | const un_op = self.air.instructions.items(.data)[@intFromEnum(inst)].un_op; | ||
| 23567 | const ty = self.typeOfIndex(inst); | ||
| 23568 | |||
| 23569 | const operand = try self.resolveInst(un_op); | ||
| 23570 | const dst_mcv = if (self.reuseOperand(inst, un_op, 0, operand)) | ||
| 23571 | operand | ||
| 23572 | else | ||
| 23573 | try self.copyToRegisterWithInstTracking(inst, ty, operand); | ||
| 23574 | |||
| 23575 | return self.finishAir(inst, dst_mcv, .{ un_op, .none, .none }); | ||
| 23576 | } | ||
| 23577 | |||
| 23578 | fn airSlice(self: *CodeGen, inst: Air.Inst.Index) !void { | 30519 | fn airSlice(self: *CodeGen, inst: Air.Inst.Index) !void { |
| 23579 | const zcu = self.pt.zcu; | 30520 | const zcu = self.pt.zcu; |
| 23580 | const ty_pl = self.air.instructions.items(.data)[@intFromEnum(inst)].ty_pl; | 30521 | const ty_pl = self.air.instructions.items(.data)[@intFromEnum(inst)].ty_pl; |
| ... | @@ -29808,6 +36749,7 @@ fn genBinOp( | ... | @@ -29808,6 +36749,7 @@ fn genBinOp( |
| 29808 | try self.copyToTmpRegister(rhs_ty, rhs_mcv)).to128(), | 36749 | try self.copyToTmpRegister(rhs_ty, rhs_mcv)).to128(), |
| 29809 | ); | 36750 | ); |
| 29810 | try self.asmRegisterRegister(.{ .v_ps, .cvtph2 }, dst_reg, dst_reg); | 36751 | try self.asmRegisterRegister(.{ .v_ps, .cvtph2 }, dst_reg, dst_reg); |
| 36752 | try self.asmRegisterRegister(.{ .v_, .movshdup }, tmp_reg, dst_reg); | ||
| 29811 | break :src .{ .register = tmp_reg }; | 36753 | break :src .{ .register = tmp_reg }; |
| 29812 | } else rhs_mcv; | 36754 | } else rhs_mcv; |
| 29813 | 36755 | ||
| ... | @@ -35227,7 +42169,7 @@ fn genCopy(self: *CodeGen, ty: Type, dst_mcv: MCValue, src_mcv: MCValue, opts: C | ... | @@ -35227,7 +42169,7 @@ fn genCopy(self: *CodeGen, ty: Type, dst_mcv: MCValue, src_mcv: MCValue, opts: C |
| 35227 | .reserved_frame, | 42169 | .reserved_frame, |
| 35228 | .air_ref, | 42170 | .air_ref, |
| 35229 | => unreachable, // unmodifiable destination | 42171 | => unreachable, // unmodifiable destination |
| 35230 | .register => |reg| try self.genSetReg(reg, ty, src_mcv, opts), | 42172 | .register => |dst_reg| try self.genSetReg(dst_reg, ty, src_mcv, opts), |
| 35231 | .register_offset => |dst_reg_off| try self.genSetReg(dst_reg_off.reg, ty, switch (src_mcv) { | 42173 | .register_offset => |dst_reg_off| try self.genSetReg(dst_reg_off.reg, ty, switch (src_mcv) { |
| 35232 | .none, | 42174 | .none, |
| 35233 | .unreach, | 42175 | .unreach, |
| ... | @@ -35377,7 +42319,8 @@ fn genSetReg( | ... | @@ -35377,7 +42319,8 @@ fn genSetReg( |
| 35377 | const pt = self.pt; | 42319 | const pt = self.pt; |
| 35378 | const zcu = pt.zcu; | 42320 | const zcu = pt.zcu; |
| 35379 | const abi_size: u32 = @intCast(ty.abiSize(zcu)); | 42321 | const abi_size: u32 = @intCast(ty.abiSize(zcu)); |
| 35380 | if (ty.bitSize(zcu) > dst_reg.bitSize()) | 42322 | const dst_alias = registerAlias(dst_reg, abi_size); |
| 42323 | if (ty.bitSize(zcu) > dst_alias.bitSize()) | ||
| 35381 | return self.fail("genSetReg called with a value larger than dst_reg", .{}); | 42324 | return self.fail("genSetReg called with a value larger than dst_reg", .{}); |
| 35382 | switch (src_mcv) { | 42325 | switch (src_mcv) { |
| 35383 | .none, | 42326 | .none, |
| ... | @@ -35433,13 +42376,13 @@ fn genSetReg( | ... | @@ -35433,13 +42376,13 @@ fn genSetReg( |
| 35433 | } else if (abi_size <= 4 and @as(i64, @bitCast(imm)) < 0) { | 42376 | } else if (abi_size <= 4 and @as(i64, @bitCast(imm)) < 0) { |
| 35434 | try self.asmRegisterImmediate( | 42377 | try self.asmRegisterImmediate( |
| 35435 | .{ ._, .mov }, | 42378 | .{ ._, .mov }, |
| 35436 | registerAlias(dst_reg, abi_size), | 42379 | dst_alias, |
| 35437 | .s(@intCast(@as(i64, @bitCast(imm)))), | 42380 | .s(@intCast(@as(i64, @bitCast(imm)))), |
| 35438 | ); | 42381 | ); |
| 35439 | } else { | 42382 | } else { |
| 35440 | try self.asmRegisterImmediate( | 42383 | try self.asmRegisterImmediate( |
| 35441 | .{ ._, .mov }, | 42384 | .{ ._, .mov }, |
| 35442 | registerAlias(dst_reg, abi_size), | 42385 | dst_alias, |
| 35443 | .u(imm), | 42386 | .u(imm), |
| 35444 | ); | 42387 | ); |
| 35445 | } | 42388 | } |
| ... | @@ -35448,12 +42391,12 @@ fn genSetReg( | ... | @@ -35448,12 +42391,12 @@ fn genSetReg( |
| 35448 | .general_purpose => switch (src_reg.class()) { | 42391 | .general_purpose => switch (src_reg.class()) { |
| 35449 | .general_purpose => try self.asmRegisterRegister( | 42392 | .general_purpose => try self.asmRegisterRegister( |
| 35450 | .{ ._, .mov }, | 42393 | .{ ._, .mov }, |
| 35451 | registerAlias(dst_reg, abi_size), | 42394 | dst_alias, |
| 35452 | registerAlias(src_reg, abi_size), | 42395 | registerAlias(src_reg, abi_size), |
| 35453 | ), | 42396 | ), |
| 35454 | .segment => try self.asmRegisterRegister( | 42397 | .segment => try self.asmRegisterRegister( |
| 35455 | .{ ._, .mov }, | 42398 | .{ ._, .mov }, |
| 35456 | registerAlias(dst_reg, abi_size), | 42399 | dst_alias, |
| 35457 | src_reg, | 42400 | src_reg, |
| 35458 | ), | 42401 | ), |
| 35459 | .x87, .mmx, .ip, .cr, .dr => unreachable, | 42402 | .x87, .mmx, .ip, .cr, .dr => unreachable, |
| ... | @@ -35480,7 +42423,7 @@ fn genSetReg( | ... | @@ -35480,7 +42423,7 @@ fn genSetReg( |
| 35480 | .base = .{ .frame = frame_index }, | 42423 | .base = .{ .frame = frame_index }, |
| 35481 | .mod = .{ .rm = .{ .size = .fromSize(frame_size) } }, | 42424 | .mod = .{ .rm = .{ .size = .fromSize(frame_size) } }, |
| 35482 | }, src_reg.to128()); | 42425 | }, src_reg.to128()); |
| 35483 | try self.asmRegisterMemory(.{ ._, .mov }, registerAlias(dst_reg, abi_size), .{ | 42426 | try self.asmRegisterMemory(.{ ._, .mov }, dst_alias, .{ |
| 35484 | .base = .{ .frame = frame_index }, | 42427 | .base = .{ .frame = frame_index }, |
| 35485 | .mod = .{ .rm = .{ .size = .fromSize(abi_size) } }, | 42428 | .mod = .{ .rm = .{ .size = .fromSize(abi_size) } }, |
| 35486 | }); | 42429 | }); |
| ... | @@ -35617,7 +42560,7 @@ fn genSetReg( | ... | @@ -35617,7 +42560,7 @@ fn genSetReg( |
| 35617 | else => unreachable, | 42560 | else => unreachable, |
| 35618 | }, | 42561 | }, |
| 35619 | }) orelse return self.fail("TODO implement genSetReg for {}", .{ty.fmt(pt)}), | 42562 | }) orelse return self.fail("TODO implement genSetReg for {}", .{ty.fmt(pt)}), |
| 35620 | registerAlias(dst_reg, abi_size), | 42563 | dst_alias, |
| 35621 | registerAlias(src_reg, abi_size), | 42564 | registerAlias(src_reg, abi_size), |
| 35622 | ), | 42565 | ), |
| 35623 | }, | 42566 | }, |
| ... | @@ -35678,7 +42621,7 @@ fn genSetReg( | ... | @@ -35678,7 +42621,7 @@ fn genSetReg( |
| 35678 | ), | 42621 | ), |
| 35679 | .lea_frame => .{ .move = .{ ._, .lea } }, | 42622 | .lea_frame => .{ .move = .{ ._, .lea } }, |
| 35680 | else => unreachable, | 42623 | else => unreachable, |
| 35681 | }).read(self, registerAlias(dst_reg, abi_size), switch (src_mcv) { | 42624 | }).read(self, dst_alias, switch (src_mcv) { |
| 35682 | .register_offset, .indirect => |reg_off| .{ | 42625 | .register_offset, .indirect => |reg_off| .{ |
| 35683 | .base = .{ .reg = reg_off.reg.to64() }, | 42626 | .base = .{ .reg = reg_off.reg.to64() }, |
| 35684 | .mod = .{ .rm = .{ | 42627 | .mod = .{ .rm = .{ |
| ... | @@ -35743,7 +42686,7 @@ fn genSetReg( | ... | @@ -35743,7 +42686,7 @@ fn genSetReg( |
| 35743 | ty, | 42686 | ty, |
| 35744 | dst_reg.class(), | 42687 | dst_reg.class(), |
| 35745 | ty.abiAlignment(zcu).check(@as(u32, @bitCast(small_addr))), | 42688 | ty.abiAlignment(zcu).check(@as(u32, @bitCast(small_addr))), |
| 35746 | )).read(self, registerAlias(dst_reg, abi_size), .{ | 42689 | )).read(self, dst_alias, .{ |
| 35747 | .base = .{ .reg = .ds }, | 42690 | .base = .{ .reg = .ds }, |
| 35748 | .mod = .{ .rm = .{ | 42691 | .mod = .{ .rm = .{ |
| 35749 | .size = self.memSize(ty), | 42692 | .size = self.memSize(ty), |
| ... | @@ -35753,7 +42696,7 @@ fn genSetReg( | ... | @@ -35753,7 +42696,7 @@ fn genSetReg( |
| 35753 | .load_symbol => |sym_off| switch (dst_reg.class()) { | 42696 | .load_symbol => |sym_off| switch (dst_reg.class()) { |
| 35754 | .general_purpose => { | 42697 | .general_purpose => { |
| 35755 | assert(sym_off.off == 0); | 42698 | assert(sym_off.off == 0); |
| 35756 | try self.asmRegisterMemory(.{ ._, .mov }, registerAlias(dst_reg, abi_size), .{ | 42699 | try self.asmRegisterMemory(.{ ._, .mov }, dst_alias, .{ |
| 35757 | .base = .{ .reloc = sym_off.sym_index }, | 42700 | .base = .{ .reloc = sym_off.sym_index }, |
| 35758 | .mod = .{ .rm = .{ | 42701 | .mod = .{ .rm = .{ |
| 35759 | .size = self.memSize(ty), | 42702 | .size = self.memSize(ty), |
| ... | @@ -35771,7 +42714,7 @@ fn genSetReg( | ... | @@ -35771,7 +42714,7 @@ fn genSetReg( |
| 35771 | .tag = .mov, | 42714 | .tag = .mov, |
| 35772 | .ops = .direct_reloc, | 42715 | .ops = .direct_reloc, |
| 35773 | .data = .{ .rx = .{ | 42716 | .data = .{ .rx = .{ |
| 35774 | .r1 = registerAlias(dst_reg, abi_size), | 42717 | .r1 = dst_alias, |
| 35775 | .payload = try self.addExtra(bits.SymbolOffset{ .sym_index = sym_index }), | 42718 | .payload = try self.addExtra(bits.SymbolOffset{ .sym_index = sym_index }), |
| 35776 | } }, | 42719 | } }, |
| 35777 | }); | 42720 | }); |
| ... | @@ -35788,7 +42731,7 @@ fn genSetReg( | ... | @@ -35788,7 +42731,7 @@ fn genSetReg( |
| 35788 | const addr_lock = self.register_manager.lockRegAssumeUnused(addr_reg); | 42731 | const addr_lock = self.register_manager.lockRegAssumeUnused(addr_reg); |
| 35789 | defer self.register_manager.unlockReg(addr_lock); | 42732 | defer self.register_manager.unlockReg(addr_lock); |
| 35790 | 42733 | ||
| 35791 | try (try self.moveStrategy(ty, dst_reg.class(), false)).read(self, registerAlias(dst_reg, abi_size), .{ | 42734 | try (try self.moveStrategy(ty, dst_reg.class(), false)).read(self, dst_alias, .{ |
| 35792 | .base = .{ .reg = addr_reg.to64() }, | 42735 | .base = .{ .reg = addr_reg.to64() }, |
| 35793 | .mod = .{ .rm = .{ .size = self.memSize(ty) } }, | 42736 | .mod = .{ .rm = .{ .size = self.memSize(ty) } }, |
| 35794 | }); | 42737 | }); |
| ... | @@ -36274,21 +43217,6 @@ fn genLazySymbolRef( | ... | @@ -36274,21 +43217,6 @@ fn genLazySymbolRef( |
| 36274 | } | 43217 | } |
| 36275 | } | 43218 | } |
| 36276 | 43219 | ||
| 36277 | fn airIntFromPtr(self: *CodeGen, inst: Air.Inst.Index) !void { | ||
| 36278 | const un_op = self.air.instructions.items(.data)[@intFromEnum(inst)].un_op; | ||
| 36279 | const result = result: { | ||
| 36280 | // TODO: handle case where the operand is a slice not a raw pointer | ||
| 36281 | const src_mcv = try self.resolveInst(un_op); | ||
| 36282 | if (self.reuseOperand(inst, un_op, 0, src_mcv)) break :result src_mcv; | ||
| 36283 | |||
| 36284 | const dst_mcv = try self.allocRegOrMem(inst, true); | ||
| 36285 | const dst_ty = self.typeOfIndex(inst); | ||
| 36286 | try self.genCopy(dst_ty, dst_mcv, src_mcv, .{}); | ||
| 36287 | break :result dst_mcv; | ||
| 36288 | }; | ||
| 36289 | return self.finishAir(inst, result, .{ un_op, .none, .none }); | ||
| 36290 | } | ||
| 36291 | |||
| 36292 | fn airBitCast(self: *CodeGen, inst: Air.Inst.Index) !void { | 43220 | fn airBitCast(self: *CodeGen, inst: Air.Inst.Index) !void { |
| 36293 | const pt = self.pt; | 43221 | const pt = self.pt; |
| 36294 | const zcu = pt.zcu; | 43222 | const zcu = pt.zcu; |
| ... | @@ -36328,7 +43256,7 @@ fn airBitCast(self: *CodeGen, inst: Air.Inst.Index) !void { | ... | @@ -36328,7 +43256,7 @@ fn airBitCast(self: *CodeGen, inst: Air.Inst.Index) !void { |
| 36328 | 43256 | ||
| 36329 | if (dst_ty.isRuntimeFloat()) break :result dst_mcv; | 43257 | if (dst_ty.isRuntimeFloat()) break :result dst_mcv; |
| 36330 | 43258 | ||
| 36331 | if (dst_ty.isAbiInt(zcu) and src_ty.isAbiInt(zcu) and | 43259 | if (dst_ty.isAbiInt(zcu) and src_ty.isAbiInt(zcu) and src_ty.zigTypeTag(zcu) != .@"struct" and |
| 36332 | dst_ty.intInfo(zcu).signedness == src_ty.intInfo(zcu).signedness) break :result dst_mcv; | 43260 | dst_ty.intInfo(zcu).signedness == src_ty.intInfo(zcu).signedness) break :result dst_mcv; |
| 36333 | 43261 | ||
| 36334 | const abi_size = dst_ty.abiSize(zcu); | 43262 | const abi_size = dst_ty.abiSize(zcu); |
| ... | @@ -40916,8 +47844,8 @@ const Temp = struct { | ... | @@ -40916,8 +47844,8 @@ const Temp = struct { |
| 40916 | const first_temp_tracking = first_temp.unwrap(cg).temp.tracking(cg); | 47844 | const first_temp_tracking = first_temp.unwrap(cg).temp.tracking(cg); |
| 40917 | const second_temp_tracking = second_temp.unwrap(cg).temp.tracking(cg); | 47845 | const second_temp_tracking = second_temp.unwrap(cg).temp.tracking(cg); |
| 40918 | const result: MCValue = .{ .register_pair = .{ | 47846 | const result: MCValue = .{ .register_pair = .{ |
| 40919 | first_temp_tracking.short.register, | 47847 | first_temp_tracking.short.register.to64(), |
| 40920 | second_temp_tracking.short.register, | 47848 | second_temp_tracking.short.register.to64(), |
| 40921 | } }; | 47849 | } }; |
| 40922 | const result_temp_index = cg.next_temp_index; | 47850 | const result_temp_index = cg.next_temp_index; |
| 40923 | const result_temp: Temp = .{ .index = result_temp_index.toIndex() }; | 47851 | const result_temp: Temp = .{ .index = result_temp_index.toIndex() }; |
| ... | @@ -42369,7 +49297,7 @@ const Temp = struct { | ... | @@ -42369,7 +49297,7 @@ const Temp = struct { |
| 42369 | .temp => |temp_index| { | 49297 | .temp => |temp_index| { |
| 42370 | const temp_tracking = temp_index.tracking(cg); | 49298 | const temp_tracking = temp_index.tracking(cg); |
| 42371 | tracking_log.debug("{} => {} (birth)", .{ inst, temp_tracking.short }); | 49299 | tracking_log.debug("{} => {} (birth)", .{ inst, temp_tracking.short }); |
| 42372 | cg.inst_tracking.putAssumeCapacityNoClobber(inst, temp_tracking.*); | 49300 | cg.inst_tracking.putAssumeCapacityNoClobber(inst, .init(temp_tracking.short)); |
| 42373 | assert(cg.reuseTemp(inst, temp_index.toIndex(), temp_tracking)); | 49301 | assert(cg.reuseTemp(inst, temp_index.toIndex(), temp_tracking)); |
| 42374 | }, | 49302 | }, |
| 42375 | } | 49303 | } |
| ... | @@ -42616,7 +49544,7 @@ const Select = struct { | ... | @@ -42616,7 +49544,7 @@ const Select = struct { |
| 42616 | top: u3, | 49544 | top: u3, |
| 42617 | 49545 | ||
| 42618 | fn emitLabel(s: *Select, label_index: Label) void { | 49546 | fn emitLabel(s: *Select, label_index: Label) void { |
| 42619 | if (label_index == ._) return; | 49547 | assert(@intFromEnum(label_index) < @intFromEnum(Label._)); |
| 42620 | const label = &s.labels[@intFromEnum(label_index)]; | 49548 | const label = &s.labels[@intFromEnum(label_index)]; |
| 42621 | for (&label.forward) |*reloc| { | 49549 | for (&label.forward) |*reloc| { |
| 42622 | if (reloc.*) |r| s.cg.performReloc(r); | 49550 | if (reloc.*) |r| s.cg.performReloc(r); |
| ... | @@ -42626,29 +49554,35 @@ const Select = struct { | ... | @@ -42626,29 +49554,35 @@ const Select = struct { |
| 42626 | } | 49554 | } |
| 42627 | 49555 | ||
| 42628 | fn emit(s: *Select, inst: Instruction) !void { | 49556 | fn emit(s: *Select, inst: Instruction) !void { |
| 42629 | s.emitLabel(inst[0]); | ||
| 42630 | const mir_tag: Mir.Inst.FixedTag = .{ inst[1], inst[2] }; | 49557 | const mir_tag: Mir.Inst.FixedTag = .{ inst[1], inst[2] }; |
| 42631 | var mir_ops: [4]CodeGen.Operand = undefined; | 49558 | pseudo: { |
| 42632 | inline for (&mir_ops, 3..) |*mir_op, inst_index| mir_op.* = try inst[inst_index].lower(s); | 49559 | switch (inst[0]) { |
| 42633 | s.cg.asmOps(mir_tag, mir_ops) catch |err| switch (err) { | 49560 | .@"0:", .@"1:", .@"2:" => |label| s.emitLabel(label), |
| 42634 | error.InvalidInstruction => { | 49561 | ._ => {}, |
| 42635 | const fixes = @tagName(mir_tag[0]); | 49562 | .pseudo => break :pseudo, |
| 42636 | const fixes_blank = std.mem.indexOfScalar(u8, fixes, '_').?; | 49563 | } |
| 42637 | return s.cg.fail( | 49564 | var mir_ops: [4]CodeGen.Operand = undefined; |
| 42638 | "invalid instruction: '{s}{s}{s} {s} {s} {s} {s}'", | 49565 | inline for (&mir_ops, 3..) |*mir_op, inst_index| mir_op.* = try inst[inst_index].lower(s); |
| 42639 | .{ | 49566 | s.cg.asmOps(mir_tag, mir_ops) catch |err| switch (err) { |
| 42640 | fixes[0..fixes_blank], | 49567 | error.InvalidInstruction => { |
| 42641 | @tagName(mir_tag[1]), | 49568 | const fixes = @tagName(mir_tag[0]); |
| 42642 | fixes[fixes_blank + 1 ..], | 49569 | const fixes_blank = std.mem.indexOfScalar(u8, fixes, '_').?; |
| 42643 | @tagName(mir_ops[0]), | 49570 | return s.cg.fail( |
| 42644 | @tagName(mir_ops[1]), | 49571 | "invalid instruction: '{s}{s}{s} {s} {s} {s} {s}'", |
| 42645 | @tagName(mir_ops[2]), | 49572 | .{ |
| 42646 | @tagName(mir_ops[3]), | 49573 | fixes[0..fixes_blank], |
| 42647 | }, | 49574 | @tagName(mir_tag[1]), |
| 42648 | ); | 49575 | fixes[fixes_blank + 1 ..], |
| 42649 | }, | 49576 | @tagName(mir_ops[0]), |
| 42650 | else => |e| return e, | 49577 | @tagName(mir_ops[1]), |
| 42651 | }; | 49578 | @tagName(mir_ops[2]), |
| 49579 | @tagName(mir_ops[3]), | ||
| 49580 | }, | ||
| 49581 | ); | ||
| 49582 | }, | ||
| 49583 | else => |e| return e, | ||
| 49584 | }; | ||
| 49585 | } | ||
| 42652 | switch (mir_tag[0]) { | 49586 | switch (mir_tag[0]) { |
| 42653 | .f_ => switch (mir_tag[1]) { | 49587 | .f_ => switch (mir_tag[1]) { |
| 42654 | .@"2xm1", | 49588 | .@"2xm1", |
| ... | @@ -42702,32 +49636,6 @@ const Select = struct { | ... | @@ -42702,32 +49636,6 @@ const Select = struct { |
| 42702 | .yl2x => s.top +%= 1, | 49636 | .yl2x => s.top +%= 1, |
| 42703 | else => unreachable, | 49637 | else => unreachable, |
| 42704 | }, | 49638 | }, |
| 42705 | .fb_ => switch (mir_tag[1]) { | ||
| 42706 | .ld => s.top -%= 1, | ||
| 42707 | else => unreachable, | ||
| 42708 | }, | ||
| 42709 | .fb_p => switch (mir_tag[1]) { | ||
| 42710 | .st => s.top +%= 1, | ||
| 42711 | else => unreachable, | ||
| 42712 | }, | ||
| 42713 | .fi_ => switch (mir_tag[1]) { | ||
| 42714 | .add, .com, .div, .divr, .mul, .st, .stt, .sub, .subr => {}, | ||
| 42715 | .ld => s.top -%= 1, | ||
| 42716 | else => unreachable, | ||
| 42717 | }, | ||
| 42718 | .fi_p => switch (mir_tag[1]) { | ||
| 42719 | .com, .st => s.top +%= 1, | ||
| 42720 | else => unreachable, | ||
| 42721 | }, | ||
| 42722 | .fn_ => switch (mir_tag[1]) { | ||
| 42723 | .clex => {}, | ||
| 42724 | .init, .save => s.top = 0, | ||
| 42725 | else => unreachable, | ||
| 42726 | }, | ||
| 42727 | .fn_cw, .fn_env, .fn_sw => switch (mir_tag[1]) { | ||
| 42728 | .st => {}, | ||
| 42729 | else => unreachable, | ||
| 42730 | }, | ||
| 42731 | .f_cstp => switch (mir_tag[1]) { | 49639 | .f_cstp => switch (mir_tag[1]) { |
| 42732 | .de => s.top -%= 1, | 49640 | .de => s.top -%= 1, |
| 42733 | .in => s.top +%= 1, | 49641 | .in => s.top +%= 1, |
| ... | @@ -42754,6 +49662,32 @@ const Select = struct { | ... | @@ -42754,6 +49662,32 @@ const Select = struct { |
| 42754 | .com, .ucom => s.top +%= 2, | 49662 | .com, .ucom => s.top +%= 2, |
| 42755 | else => unreachable, | 49663 | else => unreachable, |
| 42756 | }, | 49664 | }, |
| 49665 | .fb_ => switch (mir_tag[1]) { | ||
| 49666 | .ld => s.top -%= 1, | ||
| 49667 | else => unreachable, | ||
| 49668 | }, | ||
| 49669 | .fb_p => switch (mir_tag[1]) { | ||
| 49670 | .st => s.top +%= 1, | ||
| 49671 | else => unreachable, | ||
| 49672 | }, | ||
| 49673 | .fi_ => switch (mir_tag[1]) { | ||
| 49674 | .add, .com, .div, .divr, .mul, .st, .stt, .sub, .subr => {}, | ||
| 49675 | .ld => s.top -%= 1, | ||
| 49676 | else => unreachable, | ||
| 49677 | }, | ||
| 49678 | .fi_p => switch (mir_tag[1]) { | ||
| 49679 | .com, .st => s.top +%= 1, | ||
| 49680 | else => unreachable, | ||
| 49681 | }, | ||
| 49682 | .fn_ => switch (mir_tag[1]) { | ||
| 49683 | .clex => {}, | ||
| 49684 | .init, .save => s.top = 0, | ||
| 49685 | else => unreachable, | ||
| 49686 | }, | ||
| 49687 | .fn_cw, .fn_env, .fn_sw => switch (mir_tag[1]) { | ||
| 49688 | .st => {}, | ||
| 49689 | else => unreachable, | ||
| 49690 | }, | ||
| 42757 | .fx_ => switch (mir_tag[1]) { | 49691 | .fx_ => switch (mir_tag[1]) { |
| 42758 | .rstor => unreachable, | 49692 | .rstor => unreachable, |
| 42759 | .save => {}, | 49693 | .save => {}, |
| ... | @@ -42770,8 +49704,8 @@ const Select = struct { | ... | @@ -42770,8 +49704,8 @@ const Select = struct { |
| 42770 | 49704 | ||
| 42771 | const Case = struct { | 49705 | const Case = struct { |
| 42772 | required_features: [4]?std.Target.x86.Feature = @splat(null), | 49706 | required_features: [4]?std.Target.x86.Feature = @splat(null), |
| 42773 | dst_constraints: [@intFromEnum(Select.Operand.Ref.src0) - @intFromEnum(Select.Operand.Ref.dst0)]Constraint = @splat(.any), | ||
| 42774 | src_constraints: [@intFromEnum(Select.Operand.Ref.none) - @intFromEnum(Select.Operand.Ref.src0)]Constraint = @splat(.any), | 49707 | src_constraints: [@intFromEnum(Select.Operand.Ref.none) - @intFromEnum(Select.Operand.Ref.src0)]Constraint = @splat(.any), |
| 49708 | dst_constraints: [@intFromEnum(Select.Operand.Ref.src0) - @intFromEnum(Select.Operand.Ref.dst0)]Constraint = @splat(.any), | ||
| 42775 | patterns: []const Select.Pattern, | 49709 | patterns: []const Select.Pattern, |
| 42776 | call_frame: packed struct(u16) { size: u10 = 0, alignment: InternPool.Alignment } = .{ .size = 0, .alignment = .none }, | 49710 | call_frame: packed struct(u16) { size: u10 = 0, alignment: InternPool.Alignment } = .{ .size = 0, .alignment = .none }, |
| 42777 | extra_temps: [@intFromEnum(Select.Operand.Ref.dst0) - @intFromEnum(Select.Operand.Ref.tmp0)]TempSpec = @splat(.unused), | 49711 | extra_temps: [@intFromEnum(Select.Operand.Ref.dst0) - @intFromEnum(Select.Operand.Ref.tmp0)]TempSpec = @splat(.unused), |
| ... | @@ -43168,6 +50102,7 @@ const Select = struct { | ... | @@ -43168,6 +50102,7 @@ const Select = struct { |
| 43168 | smax_mem: ConstInfo, | 50102 | smax_mem: ConstInfo, |
| 43169 | umin_mem: ConstInfo, | 50103 | umin_mem: ConstInfo, |
| 43170 | umax_mem: ConstInfo, | 50104 | umax_mem: ConstInfo, |
| 50105 | frame: FrameIndex, | ||
| 43171 | symbol: *const struct { lib: ?[]const u8 = null, name: []const u8 }, | 50106 | symbol: *const struct { lib: ?[]const u8 = null, name: []const u8 }, |
| 43172 | 50107 | ||
| 43173 | const ConstInfo = struct { ref: Select.Operand.Ref, vectorize_to: ?Memory.Size = null }; | 50108 | const ConstInfo = struct { ref: Select.Operand.Ref, vectorize_to: ?Memory.Size = null }; |
| ... | @@ -43284,6 +50219,7 @@ const Select = struct { | ... | @@ -43284,6 +50219,7 @@ const Select = struct { |
| 43284 | } })) else res_scalar_val; | 50219 | } })) else res_scalar_val; |
| 43285 | return .{ try cg.tempMemFromValue(res_val), true }; | 50220 | return .{ try cg.tempMemFromValue(res_val), true }; |
| 43286 | }, | 50221 | }, |
| 50222 | .frame => |frame_index| .{ try cg.tempInit(spec.type, .{ .load_frame = .{ .index = frame_index } }), true }, | ||
| 43287 | .symbol => |symbol| .{ try cg.tempInit(spec.type, .{ .lea_symbol = .{ | 50223 | .symbol => |symbol| .{ try cg.tempInit(spec.type, .{ .lea_symbol = .{ |
| 43288 | .sym_index = if (cg.bin_file.cast(.elf)) |elf_file| | 50224 | .sym_index = if (cg.bin_file.cast(.elf)) |elf_file| |
| 43289 | try elf_file.getGlobalSymbol(symbol.name, symbol.lib) | 50225 | try elf_file.getGlobalSymbol(symbol.name, symbol.lib) |
| ... | @@ -43305,18 +50241,21 @@ const Select = struct { | ... | @@ -43305,18 +50241,21 @@ const Select = struct { |
| 43305 | Select.Operand, | 50241 | Select.Operand, |
| 43306 | Select.Operand, | 50242 | Select.Operand, |
| 43307 | }; | 50243 | }; |
| 43308 | const Label = enum { @"0:", @"1:", @"2:", @"_" }; | 50244 | const Label = enum { @"0:", @"1:", @"2:", @"_", pseudo }; |
| 43309 | const Operand = struct { | 50245 | const Operand = struct { |
| 43310 | tag: Tag, | 50246 | flags: packed struct(u16) { |
| 50247 | tag: Tag, | ||
| 50248 | adjust: Adjust = .none, | ||
| 50249 | unused: u4 = 0, | ||
| 50250 | }, | ||
| 43311 | base: Ref.Sized = .none, | 50251 | base: Ref.Sized = .none, |
| 43312 | index: packed struct(u6) { | 50252 | index: packed struct(u6) { |
| 43313 | ref: Ref, | 50253 | ref: Ref, |
| 43314 | scale: Memory.Scale, | 50254 | scale: Memory.Scale = .@"1", |
| 43315 | } = .{ .ref = .none, .scale = .@"1" }, | 50255 | } = .{ .ref = .none }, |
| 43316 | adjust: Adjust = .none, | ||
| 43317 | imm: i32 = 0, | 50256 | imm: i32 = 0, |
| 43318 | 50257 | ||
| 43319 | const Tag = enum { | 50258 | const Tag = enum(u3) { |
| 43320 | none, | 50259 | none, |
| 43321 | backward_label, | 50260 | backward_label, |
| 43322 | forward_label, | 50261 | forward_label, |
| ... | @@ -43326,19 +50265,22 @@ const Select = struct { | ... | @@ -43326,19 +50265,22 @@ const Select = struct { |
| 43326 | lea, | 50265 | lea, |
| 43327 | mem, | 50266 | mem, |
| 43328 | }; | 50267 | }; |
| 43329 | const Adjust = packed struct(u8) { | 50268 | const Adjust = packed struct(u9) { |
| 43330 | sign: enum(u1) { neg, pos }, | 50269 | sign: enum(u1) { neg, pos }, |
| 43331 | lhs: enum(u4) { | 50270 | lhs: enum(u5) { |
| 43332 | none, | 50271 | none, |
| 43333 | ptr_size, | 50272 | ptr_size, |
| 43334 | ptr_bit_size, | 50273 | ptr_bit_size, |
| 43335 | size, | 50274 | size, |
| 50275 | delta_size, | ||
| 50276 | delta_elem_size, | ||
| 43336 | size_sub_elem_size, | 50277 | size_sub_elem_size, |
| 43337 | src0_unaligned_size, | 50278 | unaligned_size, |
| 43338 | bit_size, | 50279 | bit_size, |
| 43339 | src0_bit_size, | 50280 | src0_bit_size, |
| 43340 | len, | 50281 | len, |
| 43341 | elem_limbs, | 50282 | elem_limbs, |
| 50283 | elem_size, | ||
| 43342 | src0_elem_size, | 50284 | src0_elem_size, |
| 43343 | src0_elem_size_times_src1, | 50285 | src0_elem_size_times_src1, |
| 43344 | log2_src0_elem_size, | 50286 | log2_src0_elem_size, |
| ... | @@ -43353,13 +50295,17 @@ const Select = struct { | ... | @@ -43353,13 +50295,17 @@ const Select = struct { |
| 43353 | const sub_ptr_size: Adjust = .{ .sign = .neg, .lhs = .ptr_size, .op = .mul, .rhs = .@"1" }; | 50295 | const sub_ptr_size: Adjust = .{ .sign = .neg, .lhs = .ptr_size, .op = .mul, .rhs = .@"1" }; |
| 43354 | const add_ptr_bit_size: Adjust = .{ .sign = .pos, .lhs = .ptr_bit_size, .op = .mul, .rhs = .@"1" }; | 50296 | const add_ptr_bit_size: Adjust = .{ .sign = .pos, .lhs = .ptr_bit_size, .op = .mul, .rhs = .@"1" }; |
| 43355 | const add_size: Adjust = .{ .sign = .pos, .lhs = .size, .op = .mul, .rhs = .@"1" }; | 50297 | const add_size: Adjust = .{ .sign = .pos, .lhs = .size, .op = .mul, .rhs = .@"1" }; |
| 50298 | const add_size_div_4: Adjust = .{ .sign = .pos, .lhs = .size, .op = .div, .rhs = .@"4" }; | ||
| 43356 | const add_size_div_8: Adjust = .{ .sign = .pos, .lhs = .size, .op = .div, .rhs = .@"8" }; | 50299 | const add_size_div_8: Adjust = .{ .sign = .pos, .lhs = .size, .op = .div, .rhs = .@"8" }; |
| 43357 | const sub_size_div_8: Adjust = .{ .sign = .neg, .lhs = .size, .op = .div, .rhs = .@"8" }; | 50300 | const sub_size_div_8: Adjust = .{ .sign = .neg, .lhs = .size, .op = .div, .rhs = .@"8" }; |
| 43358 | const sub_size_div_4: Adjust = .{ .sign = .neg, .lhs = .size, .op = .div, .rhs = .@"4" }; | 50301 | const sub_size_div_4: Adjust = .{ .sign = .neg, .lhs = .size, .op = .div, .rhs = .@"4" }; |
| 43359 | const sub_size: Adjust = .{ .sign = .neg, .lhs = .size, .op = .mul, .rhs = .@"1" }; | 50302 | const sub_size: Adjust = .{ .sign = .neg, .lhs = .size, .op = .mul, .rhs = .@"1" }; |
| 50303 | const add_delta_size_div_8: Adjust = .{ .sign = .pos, .lhs = .delta_size, .op = .div, .rhs = .@"8" }; | ||
| 50304 | const add_delta_elem_size: Adjust = .{ .sign = .pos, .lhs = .delta_elem_size, .op = .mul, .rhs = .@"1" }; | ||
| 50305 | const add_delta_elem_size_div_8: Adjust = .{ .sign = .pos, .lhs = .delta_elem_size, .op = .div, .rhs = .@"8" }; | ||
| 43360 | const add_size_sub_elem_size: Adjust = .{ .sign = .pos, .lhs = .size_sub_elem_size, .op = .mul, .rhs = .@"1" }; | 50306 | const add_size_sub_elem_size: Adjust = .{ .sign = .pos, .lhs = .size_sub_elem_size, .op = .mul, .rhs = .@"1" }; |
| 43361 | const add_src0_unaligned_size: Adjust = .{ .sign = .pos, .lhs = .src0_unaligned_size, .op = .mul, .rhs = .@"1" }; | 50307 | const add_unaligned_size: Adjust = .{ .sign = .pos, .lhs = .unaligned_size, .op = .mul, .rhs = .@"1" }; |
| 43362 | const sub_src0_unaligned_size: Adjust = .{ .sign = .neg, .lhs = .src0_unaligned_size, .op = .mul, .rhs = .@"1" }; | 50308 | const sub_unaligned_size: Adjust = .{ .sign = .neg, .lhs = .unaligned_size, .op = .mul, .rhs = .@"1" }; |
| 43363 | const add_2_bit_size: Adjust = .{ .sign = .pos, .lhs = .bit_size, .op = .mul, .rhs = .@"2" }; | 50309 | const add_2_bit_size: Adjust = .{ .sign = .pos, .lhs = .bit_size, .op = .mul, .rhs = .@"2" }; |
| 43364 | const add_bit_size: Adjust = .{ .sign = .pos, .lhs = .bit_size, .op = .mul, .rhs = .@"1" }; | 50310 | const add_bit_size: Adjust = .{ .sign = .pos, .lhs = .bit_size, .op = .mul, .rhs = .@"1" }; |
| 43365 | const sub_bit_size: Adjust = .{ .sign = .neg, .lhs = .bit_size, .op = .mul, .rhs = .@"1" }; | 50311 | const sub_bit_size: Adjust = .{ .sign = .neg, .lhs = .bit_size, .op = .mul, .rhs = .@"1" }; |
| ... | @@ -43371,6 +50317,7 @@ const Select = struct { | ... | @@ -43371,6 +50317,7 @@ const Select = struct { |
| 43371 | const add_2_len: Adjust = .{ .sign = .pos, .lhs = .len, .op = .mul, .rhs = .@"2" }; | 50317 | const add_2_len: Adjust = .{ .sign = .pos, .lhs = .len, .op = .mul, .rhs = .@"2" }; |
| 43372 | const add_len: Adjust = .{ .sign = .pos, .lhs = .len, .op = .mul, .rhs = .@"1" }; | 50318 | const add_len: Adjust = .{ .sign = .pos, .lhs = .len, .op = .mul, .rhs = .@"1" }; |
| 43373 | const sub_len: Adjust = .{ .sign = .neg, .lhs = .len, .op = .mul, .rhs = .@"1" }; | 50319 | const sub_len: Adjust = .{ .sign = .neg, .lhs = .len, .op = .mul, .rhs = .@"1" }; |
| 50320 | const add_elem_size_div_8: Adjust = .{ .sign = .pos, .lhs = .elem_size, .op = .div, .rhs = .@"8" }; | ||
| 43374 | const add_src0_elem_size: Adjust = .{ .sign = .pos, .lhs = .src0_elem_size, .op = .mul, .rhs = .@"1" }; | 50321 | const add_src0_elem_size: Adjust = .{ .sign = .pos, .lhs = .src0_elem_size, .op = .mul, .rhs = .@"1" }; |
| 43375 | const add_2_src0_elem_size: Adjust = .{ .sign = .pos, .lhs = .src0_elem_size, .op = .mul, .rhs = .@"2" }; | 50322 | const add_2_src0_elem_size: Adjust = .{ .sign = .pos, .lhs = .src0_elem_size, .op = .mul, .rhs = .@"2" }; |
| 43376 | const add_4_src0_elem_size: Adjust = .{ .sign = .pos, .lhs = .src0_elem_size, .op = .mul, .rhs = .@"4" }; | 50323 | const add_4_src0_elem_size: Adjust = .{ .sign = .pos, .lhs = .src0_elem_size, .op = .mul, .rhs = .@"4" }; |
| ... | @@ -43530,298 +50477,293 @@ const Select = struct { | ... | @@ -43530,298 +50477,293 @@ const Select = struct { |
| 43530 | } | 50477 | } |
| 43531 | }; | 50478 | }; |
| 43532 | 50479 | ||
| 43533 | const @"_": Select.Operand = .{ .tag = .none }; | 50480 | const @"_": Select.Operand = .{ .flags = .{ .tag = .none } }; |
| 43534 | 50481 | ||
| 43535 | const @"0b": Select.Operand = .{ .tag = .backward_label, .base = .{ .ref = .tmp0, .size = .none } }; | 50482 | const @"0b": Select.Operand = .{ .flags = .{ .tag = .backward_label }, .base = .{ .ref = .tmp0, .size = .none } }; |
| 43536 | const @"0f": Select.Operand = .{ .tag = .forward_label, .base = .{ .ref = .tmp0, .size = .none } }; | 50483 | const @"0f": Select.Operand = .{ .flags = .{ .tag = .forward_label }, .base = .{ .ref = .tmp0, .size = .none } }; |
| 43537 | const @"1b": Select.Operand = .{ .tag = .backward_label, .base = .{ .ref = .tmp1, .size = .none } }; | 50484 | const @"1b": Select.Operand = .{ .flags = .{ .tag = .backward_label }, .base = .{ .ref = .tmp1, .size = .none } }; |
| 43538 | const @"1f": Select.Operand = .{ .tag = .forward_label, .base = .{ .ref = .tmp1, .size = .none } }; | 50485 | const @"1f": Select.Operand = .{ .flags = .{ .tag = .forward_label }, .base = .{ .ref = .tmp1, .size = .none } }; |
| 43539 | const @"2b": Select.Operand = .{ .tag = .backward_label, .base = .{ .ref = .tmp2, .size = .none } }; | 50486 | const @"2b": Select.Operand = .{ .flags = .{ .tag = .backward_label }, .base = .{ .ref = .tmp2, .size = .none } }; |
| 43540 | const @"2f": Select.Operand = .{ .tag = .forward_label, .base = .{ .ref = .tmp2, .size = .none } }; | 50487 | const @"2f": Select.Operand = .{ .flags = .{ .tag = .forward_label }, .base = .{ .ref = .tmp2, .size = .none } }; |
| 43541 | 50488 | ||
| 43542 | const tmp0b: Select.Operand = .{ .tag = .ref, .base = .tmp0b }; | 50489 | const tmp0b: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp0b }; |
| 43543 | const tmp0w: Select.Operand = .{ .tag = .ref, .base = .tmp0w }; | 50490 | const tmp0w: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp0w }; |
| 43544 | const tmp0d: Select.Operand = .{ .tag = .ref, .base = .tmp0d }; | 50491 | const tmp0d: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp0d }; |
| 43545 | const tmp0p: Select.Operand = .{ .tag = .ref, .base = .tmp0p }; | 50492 | const tmp0p: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp0p }; |
| 43546 | const tmp0q: Select.Operand = .{ .tag = .ref, .base = .tmp0q }; | 50493 | const tmp0q: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp0q }; |
| 43547 | const tmp0t: Select.Operand = .{ .tag = .ref, .base = .tmp0t }; | 50494 | const tmp0t: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp0t }; |
| 43548 | const tmp0x: Select.Operand = .{ .tag = .ref, .base = .tmp0x }; | 50495 | const tmp0x: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp0x }; |
| 43549 | const tmp0y: Select.Operand = .{ .tag = .ref, .base = .tmp0y }; | 50496 | const tmp0y: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp0y }; |
| 43550 | 50497 | ||
| 43551 | const tmp1b: Select.Operand = .{ .tag = .ref, .base = .tmp1b }; | 50498 | const tmp1b: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp1b }; |
| 43552 | const tmp1w: Select.Operand = .{ .tag = .ref, .base = .tmp1w }; | 50499 | const tmp1w: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp1w }; |
| 43553 | const tmp1d: Select.Operand = .{ .tag = .ref, .base = .tmp1d }; | 50500 | const tmp1d: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp1d }; |
| 43554 | const tmp1p: Select.Operand = .{ .tag = .ref, .base = .tmp1p }; | 50501 | const tmp1p: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp1p }; |
| 43555 | const tmp1q: Select.Operand = .{ .tag = .ref, .base = .tmp1q }; | 50502 | const tmp1q: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp1q }; |
| 43556 | const tmp1t: Select.Operand = .{ .tag = .ref, .base = .tmp1t }; | 50503 | const tmp1t: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp1t }; |
| 43557 | const tmp1x: Select.Operand = .{ .tag = .ref, .base = .tmp1x }; | 50504 | const tmp1x: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp1x }; |
| 43558 | const tmp1y: Select.Operand = .{ .tag = .ref, .base = .tmp1y }; | 50505 | const tmp1y: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp1y }; |
| 43559 | 50506 | ||
| 43560 | const tmp2b: Select.Operand = .{ .tag = .ref, .base = .tmp2b }; | 50507 | const tmp2b: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp2b }; |
| 43561 | const tmp2w: Select.Operand = .{ .tag = .ref, .base = .tmp2w }; | 50508 | const tmp2w: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp2w }; |
| 43562 | const tmp2d: Select.Operand = .{ .tag = .ref, .base = .tmp2d }; | 50509 | const tmp2d: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp2d }; |
| 43563 | const tmp2p: Select.Operand = .{ .tag = .ref, .base = .tmp2p }; | 50510 | const tmp2p: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp2p }; |
| 43564 | const tmp2q: Select.Operand = .{ .tag = .ref, .base = .tmp2q }; | 50511 | const tmp2q: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp2q }; |
| 43565 | const tmp2t: Select.Operand = .{ .tag = .ref, .base = .tmp2t }; | 50512 | const tmp2t: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp2t }; |
| 43566 | const tmp2x: Select.Operand = .{ .tag = .ref, .base = .tmp2x }; | 50513 | const tmp2x: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp2x }; |
| 43567 | const tmp2y: Select.Operand = .{ .tag = .ref, .base = .tmp2y }; | 50514 | const tmp2y: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp2y }; |
| 43568 | 50515 | ||
| 43569 | const tmp3b: Select.Operand = .{ .tag = .ref, .base = .tmp3b }; | 50516 | const tmp3b: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp3b }; |
| 43570 | const tmp3w: Select.Operand = .{ .tag = .ref, .base = .tmp3w }; | 50517 | const tmp3w: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp3w }; |
| 43571 | const tmp3d: Select.Operand = .{ .tag = .ref, .base = .tmp3d }; | 50518 | const tmp3d: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp3d }; |
| 43572 | const tmp3p: Select.Operand = .{ .tag = .ref, .base = .tmp3p }; | 50519 | const tmp3p: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp3p }; |
| 43573 | const tmp3q: Select.Operand = .{ .tag = .ref, .base = .tmp3q }; | 50520 | const tmp3q: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp3q }; |
| 43574 | const tmp3t: Select.Operand = .{ .tag = .ref, .base = .tmp3t }; | 50521 | const tmp3t: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp3t }; |
| 43575 | const tmp3x: Select.Operand = .{ .tag = .ref, .base = .tmp3x }; | 50522 | const tmp3x: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp3x }; |
| 43576 | const tmp3y: Select.Operand = .{ .tag = .ref, .base = .tmp3y }; | 50523 | const tmp3y: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp3y }; |
| 43577 | 50524 | ||
| 43578 | const tmp4b: Select.Operand = .{ .tag = .ref, .base = .tmp4b }; | 50525 | const tmp4b: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp4b }; |
| 43579 | const tmp4w: Select.Operand = .{ .tag = .ref, .base = .tmp4w }; | 50526 | const tmp4w: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp4w }; |
| 43580 | const tmp4d: Select.Operand = .{ .tag = .ref, .base = .tmp4d }; | 50527 | const tmp4d: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp4d }; |
| 43581 | const tmp4p: Select.Operand = .{ .tag = .ref, .base = .tmp4p }; | 50528 | const tmp4p: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp4p }; |
| 43582 | const tmp4q: Select.Operand = .{ .tag = .ref, .base = .tmp4q }; | 50529 | const tmp4q: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp4q }; |
| 43583 | const tmp4t: Select.Operand = .{ .tag = .ref, .base = .tmp4t }; | 50530 | const tmp4t: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp4t }; |
| 43584 | const tmp4x: Select.Operand = .{ .tag = .ref, .base = .tmp4x }; | 50531 | const tmp4x: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp4x }; |
| 43585 | const tmp4y: Select.Operand = .{ .tag = .ref, .base = .tmp4y }; | 50532 | const tmp4y: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp4y }; |
| 43586 | 50533 | ||
| 43587 | const tmp5b: Select.Operand = .{ .tag = .ref, .base = .tmp5b }; | 50534 | const tmp5b: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp5b }; |
| 43588 | const tmp5w: Select.Operand = .{ .tag = .ref, .base = .tmp5w }; | 50535 | const tmp5w: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp5w }; |
| 43589 | const tmp5d: Select.Operand = .{ .tag = .ref, .base = .tmp5d }; | 50536 | const tmp5d: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp5d }; |
| 43590 | const tmp5p: Select.Operand = .{ .tag = .ref, .base = .tmp5p }; | 50537 | const tmp5p: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp5p }; |
| 43591 | const tmp5q: Select.Operand = .{ .tag = .ref, .base = .tmp5q }; | 50538 | const tmp5q: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp5q }; |
| 43592 | const tmp5t: Select.Operand = .{ .tag = .ref, .base = .tmp5t }; | 50539 | const tmp5t: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp5t }; |
| 43593 | const tmp5x: Select.Operand = .{ .tag = .ref, .base = .tmp5x }; | 50540 | const tmp5x: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp5x }; |
| 43594 | const tmp5y: Select.Operand = .{ .tag = .ref, .base = .tmp5y }; | 50541 | const tmp5y: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp5y }; |
| 43595 | 50542 | ||
| 43596 | const tmp6b: Select.Operand = .{ .tag = .ref, .base = .tmp6b }; | 50543 | const tmp6b: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp6b }; |
| 43597 | const tmp6w: Select.Operand = .{ .tag = .ref, .base = .tmp6w }; | 50544 | const tmp6w: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp6w }; |
| 43598 | const tmp6d: Select.Operand = .{ .tag = .ref, .base = .tmp6d }; | 50545 | const tmp6d: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp6d }; |
| 43599 | const tmp6p: Select.Operand = .{ .tag = .ref, .base = .tmp6p }; | 50546 | const tmp6p: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp6p }; |
| 43600 | const tmp6q: Select.Operand = .{ .tag = .ref, .base = .tmp6q }; | 50547 | const tmp6q: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp6q }; |
| 43601 | const tmp6t: Select.Operand = .{ .tag = .ref, .base = .tmp6t }; | 50548 | const tmp6t: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp6t }; |
| 43602 | const tmp6x: Select.Operand = .{ .tag = .ref, .base = .tmp6x }; | 50549 | const tmp6x: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp6x }; |
| 43603 | const tmp6y: Select.Operand = .{ .tag = .ref, .base = .tmp6y }; | 50550 | const tmp6y: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp6y }; |
| 43604 | 50551 | ||
| 43605 | const tmp7b: Select.Operand = .{ .tag = .ref, .base = .tmp7b }; | 50552 | const tmp7b: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp7b }; |
| 43606 | const tmp7w: Select.Operand = .{ .tag = .ref, .base = .tmp7w }; | 50553 | const tmp7w: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp7w }; |
| 43607 | const tmp7d: Select.Operand = .{ .tag = .ref, .base = .tmp7d }; | 50554 | const tmp7d: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp7d }; |
| 43608 | const tmp7p: Select.Operand = .{ .tag = .ref, .base = .tmp7p }; | 50555 | const tmp7p: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp7p }; |
| 43609 | const tmp7q: Select.Operand = .{ .tag = .ref, .base = .tmp7q }; | 50556 | const tmp7q: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp7q }; |
| 43610 | const tmp7t: Select.Operand = .{ .tag = .ref, .base = .tmp7t }; | 50557 | const tmp7t: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp7t }; |
| 43611 | const tmp7x: Select.Operand = .{ .tag = .ref, .base = .tmp7x }; | 50558 | const tmp7x: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp7x }; |
| 43612 | const tmp7y: Select.Operand = .{ .tag = .ref, .base = .tmp7y }; | 50559 | const tmp7y: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp7y }; |
| 43613 | 50560 | ||
| 43614 | const tmp8b: Select.Operand = .{ .tag = .ref, .base = .tmp8b }; | 50561 | const tmp8b: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp8b }; |
| 43615 | const tmp8w: Select.Operand = .{ .tag = .ref, .base = .tmp8w }; | 50562 | const tmp8w: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp8w }; |
| 43616 | const tmp8d: Select.Operand = .{ .tag = .ref, .base = .tmp8d }; | 50563 | const tmp8d: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp8d }; |
| 43617 | const tmp8p: Select.Operand = .{ .tag = .ref, .base = .tmp8p }; | 50564 | const tmp8p: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp8p }; |
| 43618 | const tmp8q: Select.Operand = .{ .tag = .ref, .base = .tmp8q }; | 50565 | const tmp8q: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp8q }; |
| 43619 | const tmp8t: Select.Operand = .{ .tag = .ref, .base = .tmp8t }; | 50566 | const tmp8t: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp8t }; |
| 43620 | const tmp8x: Select.Operand = .{ .tag = .ref, .base = .tmp8x }; | 50567 | const tmp8x: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp8x }; |
| 43621 | const tmp8y: Select.Operand = .{ .tag = .ref, .base = .tmp8y }; | 50568 | const tmp8y: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp8y }; |
| 43622 | 50569 | ||
| 43623 | const dst0b: Select.Operand = .{ .tag = .ref, .base = .dst0b }; | 50570 | const dst0b: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .dst0b }; |
| 43624 | const dst0w: Select.Operand = .{ .tag = .ref, .base = .dst0w }; | 50571 | const dst0w: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .dst0w }; |
| 43625 | const dst0d: Select.Operand = .{ .tag = .ref, .base = .dst0d }; | 50572 | const dst0d: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .dst0d }; |
| 43626 | const dst0p: Select.Operand = .{ .tag = .ref, .base = .dst0p }; | 50573 | const dst0p: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .dst0p }; |
| 43627 | const dst0q: Select.Operand = .{ .tag = .ref, .base = .dst0q }; | 50574 | const dst0q: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .dst0q }; |
| 43628 | const dst0t: Select.Operand = .{ .tag = .ref, .base = .dst0t }; | 50575 | const dst0t: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .dst0t }; |
| 43629 | const dst0x: Select.Operand = .{ .tag = .ref, .base = .dst0x }; | 50576 | const dst0x: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .dst0x }; |
| 43630 | const dst0y: Select.Operand = .{ .tag = .ref, .base = .dst0y }; | 50577 | const dst0y: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .dst0y }; |
| 43631 | 50578 | ||
| 43632 | const src0b: Select.Operand = .{ .tag = .ref, .base = .src0b }; | 50579 | const src0b: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .src0b }; |
| 43633 | const src0w: Select.Operand = .{ .tag = .ref, .base = .src0w }; | 50580 | const src0w: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .src0w }; |
| 43634 | const src0d: Select.Operand = .{ .tag = .ref, .base = .src0d }; | 50581 | const src0d: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .src0d }; |
| 43635 | const src0p: Select.Operand = .{ .tag = .ref, .base = .src0p }; | 50582 | const src0p: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .src0p }; |
| 43636 | const src0q: Select.Operand = .{ .tag = .ref, .base = .src0q }; | 50583 | const src0q: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .src0q }; |
| 43637 | const src0t: Select.Operand = .{ .tag = .ref, .base = .src0t }; | 50584 | const src0t: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .src0t }; |
| 43638 | const src0x: Select.Operand = .{ .tag = .ref, .base = .src0x }; | 50585 | const src0x: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .src0x }; |
| 43639 | const src0y: Select.Operand = .{ .tag = .ref, .base = .src0y }; | 50586 | const src0y: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .src0y }; |
| 43640 | 50587 | ||
| 43641 | const src1b: Select.Operand = .{ .tag = .ref, .base = .src1b }; | 50588 | const src1b: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .src1b }; |
| 43642 | const src1w: Select.Operand = .{ .tag = .ref, .base = .src1w }; | 50589 | const src1w: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .src1w }; |
| 43643 | const src1d: Select.Operand = .{ .tag = .ref, .base = .src1d }; | 50590 | const src1d: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .src1d }; |
| 43644 | const src1p: Select.Operand = .{ .tag = .ref, .base = .src1p }; | 50591 | const src1p: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .src1p }; |
| 43645 | const src1q: Select.Operand = .{ .tag = .ref, .base = .src1q }; | 50592 | const src1q: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .src1q }; |
| 43646 | const src1t: Select.Operand = .{ .tag = .ref, .base = .src1t }; | 50593 | const src1t: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .src1t }; |
| 43647 | const src1x: Select.Operand = .{ .tag = .ref, .base = .src1x }; | 50594 | const src1x: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .src1x }; |
| 43648 | const src1y: Select.Operand = .{ .tag = .ref, .base = .src1y }; | 50595 | const src1y: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .src1y }; |
| 43649 | 50596 | ||
| 43650 | fn si(imm: i32) Select.Operand { | 50597 | fn si(imm: i32) Select.Operand { |
| 43651 | return .{ .tag = .simm, .imm = imm }; | 50598 | return .{ .flags = .{ .tag = .simm }, .imm = imm }; |
| 43652 | } | 50599 | } |
| 43653 | fn sa(base: Ref.Sized, adjust: Adjust) Select.Operand { | 50600 | fn sa(base: Ref.Sized, adjust: Adjust) Select.Operand { |
| 43654 | return .{ .tag = .simm, .base = base, .adjust = adjust }; | 50601 | return .{ .flags = .{ .tag = .simm, .adjust = adjust }, .base = base }; |
| 50602 | } | ||
| 50603 | fn sa2(base: Ref.Sized, index: Ref, adjust: Adjust) Select.Operand { | ||
| 50604 | return .{ .flags = .{ .tag = .simm, .adjust = adjust }, .base = base, .index = .{ .ref = index } }; | ||
| 43655 | } | 50605 | } |
| 43656 | fn sia(imm: i32, base: Ref.Sized, adjust: Adjust) Select.Operand { | 50606 | fn sia(imm: i32, base: Ref.Sized, adjust: Adjust) Select.Operand { |
| 43657 | return .{ .tag = .simm, .base = base, .adjust = adjust, .imm = imm }; | 50607 | return .{ .flags = .{ .tag = .simm, .adjust = adjust }, .base = base, .imm = imm }; |
| 43658 | } | 50608 | } |
| 43659 | fn ui(imm: u32) Select.Operand { | 50609 | fn ui(imm: u32) Select.Operand { |
| 43660 | return .{ .tag = .uimm, .imm = @bitCast(imm) }; | 50610 | return .{ .flags = .{ .tag = .uimm }, .imm = @bitCast(imm) }; |
| 43661 | } | 50611 | } |
| 43662 | fn ua(base: Ref.Sized, adjust: Adjust) Select.Operand { | 50612 | fn ua(base: Ref.Sized, adjust: Adjust) Select.Operand { |
| 43663 | return .{ .tag = .uimm, .base = base, .adjust = adjust }; | 50613 | return .{ .flags = .{ .tag = .uimm, .adjust = adjust }, .base = base }; |
| 43664 | } | 50614 | } |
| 43665 | fn uia(imm: u32, base: Ref.Sized, adjust: Adjust) Select.Operand { | 50615 | fn uia(imm: u32, base: Ref.Sized, adjust: Adjust) Select.Operand { |
| 43666 | return .{ .tag = .uimm, .base = base, .adjust = adjust, .imm = @bitCast(imm) }; | 50616 | return .{ .flags = .{ .tag = .uimm, .adjust = adjust }, .base = base, .imm = @bitCast(imm) }; |
| 43667 | } | 50617 | } |
| 43668 | 50618 | ||
| 43669 | fn rm(mode: bits.RoundMode) Select.Operand { | 50619 | fn rm(mode: bits.RoundMode) Select.Operand { |
| 43670 | return .{ .tag = .uimm, .imm = @intCast(mode.imm().unsigned) }; | 50620 | return .{ .flags = .{ .tag = .uimm }, .imm = @intCast(mode.imm().unsigned) }; |
| 43671 | } | 50621 | } |
| 43672 | fn sp(pred: bits.SseFloatPredicate) Select.Operand { | 50622 | fn sp(pred: bits.SseFloatPredicate) Select.Operand { |
| 43673 | return .{ .tag = .uimm, .imm = @intCast(pred.imm().unsigned) }; | 50623 | return .{ .flags = .{ .tag = .uimm }, .imm = @intCast(pred.imm().unsigned) }; |
| 43674 | } | 50624 | } |
| 43675 | fn vp(pred: bits.VexFloatPredicate) Select.Operand { | 50625 | fn vp(pred: bits.VexFloatPredicate) Select.Operand { |
| 43676 | return .{ .tag = .uimm, .imm = @intCast(pred.imm().unsigned) }; | 50626 | return .{ .flags = .{ .tag = .uimm }, .imm = @intCast(pred.imm().unsigned) }; |
| 43677 | } | 50627 | } |
| 43678 | 50628 | ||
| 43679 | fn lea(size: Memory.Size, base: Ref) Select.Operand { | 50629 | fn lea(base: Ref.Sized) Select.Operand { |
| 43680 | return .{ | 50630 | return .{ |
| 43681 | .tag = .lea, | 50631 | .flags = .{ .tag = .lea }, |
| 43682 | .base = .{ .ref = base, .size = size }, | 50632 | .base = base, |
| 43683 | }; | 50633 | }; |
| 43684 | } | 50634 | } |
| 43685 | fn leaa(size: Memory.Size, base: Ref, adjust: Adjust) Select.Operand { | 50635 | fn leaa(base: Ref.Sized, adjust: Adjust) Select.Operand { |
| 43686 | return .{ | 50636 | return .{ |
| 43687 | .tag = .lea, | 50637 | .flags = .{ .tag = .lea, .adjust = adjust }, |
| 43688 | .base = .{ .ref = base, .size = size }, | 50638 | .base = base, |
| 43689 | .adjust = adjust, | ||
| 43690 | }; | 50639 | }; |
| 43691 | } | 50640 | } |
| 43692 | fn lead(size: Memory.Size, base: Ref, disp: i32) Select.Operand { | 50641 | fn lead(base: Ref.Sized, disp: i32) Select.Operand { |
| 43693 | return .{ | 50642 | return .{ |
| 43694 | .tag = .lea, | 50643 | .flags = .{ .tag = .lea }, |
| 43695 | .base = .{ .ref = base, .size = size }, | 50644 | .base = base, |
| 43696 | .imm = disp, | 50645 | .imm = disp, |
| 43697 | }; | 50646 | }; |
| 43698 | } | 50647 | } |
| 43699 | fn leai(size: Memory.Size, base: Ref, index: Ref) Select.Operand { | 50648 | fn leai(base: Ref.Sized, index: Ref) Select.Operand { |
| 43700 | return .{ | 50649 | return .{ |
| 43701 | .tag = .lea, | 50650 | .flags = .{ .tag = .lea }, |
| 43702 | .base = .{ .ref = base, .size = size }, | 50651 | .base = base, |
| 43703 | .index = .{ .ref = index, .scale = .@"1" }, | 50652 | .index = .{ .ref = index }, |
| 43704 | }; | 50653 | }; |
| 43705 | } | 50654 | } |
| 43706 | fn leaia(size: Memory.Size, base: Ref, index: Ref, adjust: Adjust) Select.Operand { | 50655 | fn leaia(base: Ref.Sized, index: Ref, adjust: Adjust) Select.Operand { |
| 43707 | return .{ | 50656 | return .{ |
| 43708 | .tag = .lea, | 50657 | .flags = .{ .tag = .lea, .adjust = adjust }, |
| 43709 | .base = .{ .ref = base, .size = size }, | 50658 | .base = base, |
| 43710 | .index = .{ .ref = index, .scale = .@"1" }, | 50659 | .index = .{ .ref = index }, |
| 43711 | .adjust = adjust, | ||
| 43712 | }; | 50660 | }; |
| 43713 | } | 50661 | } |
| 43714 | fn leaid(size: Memory.Size, base: Ref, index: Ref, disp: i32) Select.Operand { | 50662 | fn leaid(base: Ref.Sized, index: Ref, disp: i32) Select.Operand { |
| 43715 | return .{ | 50663 | return .{ |
| 43716 | .tag = .lea, | 50664 | .flags = .{ .tag = .lea }, |
| 43717 | .base = .{ .ref = base, .size = size }, | 50665 | .base = base, |
| 43718 | .index = .{ .ref = index, .scale = .@"1" }, | 50666 | .index = .{ .ref = index }, |
| 43719 | .imm = disp, | 50667 | .imm = disp, |
| 43720 | }; | 50668 | }; |
| 43721 | } | 50669 | } |
| 43722 | fn leasi(size: Memory.Size, base: Ref, scale: Memory.Scale, index: Ref) Select.Operand { | 50670 | fn leasi(base: Ref.Sized, scale: Memory.Scale, index: Ref) Select.Operand { |
| 43723 | return .{ | 50671 | return .{ |
| 43724 | .tag = .lea, | 50672 | .flags = .{ .tag = .lea }, |
| 43725 | .base = .{ .ref = base, .size = size }, | 50673 | .base = base, |
| 43726 | .index = .{ .ref = index, .scale = scale }, | 50674 | .index = .{ .ref = index, .scale = scale }, |
| 43727 | }; | 50675 | }; |
| 43728 | } | 50676 | } |
| 43729 | fn leasid(size: Memory.Size, base: Ref, scale: Memory.Scale, index: Ref, disp: i32) Select.Operand { | 50677 | fn leasid(base: Ref.Sized, scale: Memory.Scale, index: Ref, disp: i32) Select.Operand { |
| 43730 | return .{ | 50678 | return .{ |
| 43731 | .tag = .lea, | 50679 | .flags = .{ .tag = .lea }, |
| 43732 | .base = .{ .ref = base, .size = size }, | 50680 | .base = base, |
| 43733 | .index = .{ .ref = index, .scale = scale }, | 50681 | .index = .{ .ref = index, .scale = scale }, |
| 43734 | .imm = disp, | 50682 | .imm = disp, |
| 43735 | }; | 50683 | }; |
| 43736 | } | 50684 | } |
| 43737 | fn leasiad(size: Memory.Size, base: Ref, scale: Memory.Scale, index: Ref, adjust: Adjust, disp: i32) Select.Operand { | 50685 | fn leasiad(base: Ref.Sized, scale: Memory.Scale, index: Ref, adjust: Adjust, disp: i32) Select.Operand { |
| 43738 | return .{ | 50686 | return .{ |
| 43739 | .tag = .lea, | 50687 | .flags = .{ .tag = .lea, .adjust = adjust }, |
| 43740 | .base = .{ .ref = base, .size = size }, | 50688 | .base = base, |
| 43741 | .index = .{ .ref = index, .scale = scale }, | 50689 | .index = .{ .ref = index, .scale = scale }, |
| 43742 | .adjust = adjust, | ||
| 43743 | .imm = disp, | 50690 | .imm = disp, |
| 43744 | }; | 50691 | }; |
| 43745 | } | 50692 | } |
| 43746 | 50693 | ||
| 43747 | fn mem(base: Ref.Sized) Select.Operand { | 50694 | fn mem(base: Ref.Sized) Select.Operand { |
| 43748 | return .{ | 50695 | return .{ |
| 43749 | .tag = .mem, | 50696 | .flags = .{ .tag = .mem }, |
| 43750 | .base = base, | 50697 | .base = base, |
| 43751 | }; | 50698 | }; |
| 43752 | } | 50699 | } |
| 43753 | fn memd(base: Ref.Sized, disp: i32) Select.Operand { | 50700 | fn memd(base: Ref.Sized, disp: i32) Select.Operand { |
| 43754 | return .{ | 50701 | return .{ |
| 43755 | .tag = .mem, | 50702 | .flags = .{ .tag = .mem }, |
| 43756 | .base = base, | 50703 | .base = base, |
| 43757 | .imm = disp, | 50704 | .imm = disp, |
| 43758 | }; | 50705 | }; |
| 43759 | } | 50706 | } |
| 43760 | fn mema(base: Ref.Sized, adjust: Adjust) Select.Operand { | 50707 | fn mema(base: Ref.Sized, adjust: Adjust) Select.Operand { |
| 43761 | return .{ | 50708 | return .{ |
| 43762 | .tag = .mem, | 50709 | .flags = .{ .tag = .mem, .adjust = adjust }, |
| 43763 | .base = base, | 50710 | .base = base, |
| 43764 | .adjust = adjust, | ||
| 43765 | }; | 50711 | }; |
| 43766 | } | 50712 | } |
| 43767 | fn memad(base: Ref.Sized, adjust: Adjust, disp: i32) Select.Operand { | 50713 | fn memad(base: Ref.Sized, adjust: Adjust, disp: i32) Select.Operand { |
| 43768 | return .{ | 50714 | return .{ |
| 43769 | .tag = .mem, | 50715 | .flags = .{ .tag = .mem, .adjust = adjust }, |
| 43770 | .base = base, | 50716 | .base = base, |
| 43771 | .adjust = adjust, | ||
| 43772 | .imm = disp, | 50717 | .imm = disp, |
| 43773 | }; | 50718 | }; |
| 43774 | } | 50719 | } |
| 43775 | fn memi(base: Ref.Sized, index: Ref) Select.Operand { | 50720 | fn memi(base: Ref.Sized, index: Ref) Select.Operand { |
| 43776 | return .{ | 50721 | return .{ |
| 43777 | .tag = .mem, | 50722 | .flags = .{ .tag = .mem }, |
| 43778 | .base = base, | 50723 | .base = base, |
| 43779 | .index = .{ .ref = index, .scale = .@"1" }, | 50724 | .index = .{ .ref = index }, |
| 43780 | }; | 50725 | }; |
| 43781 | } | 50726 | } |
| 43782 | fn memia(base: Ref.Sized, index: Ref, adjust: Adjust) Select.Operand { | 50727 | fn memia(base: Ref.Sized, index: Ref, adjust: Adjust) Select.Operand { |
| 43783 | return .{ | 50728 | return .{ |
| 43784 | .tag = .mem, | 50729 | .flags = .{ .tag = .mem, .adjust = adjust }, |
| 43785 | .base = base, | 50730 | .base = base, |
| 43786 | .index = .{ .ref = index, .scale = .@"1" }, | 50731 | .index = .{ .ref = index }, |
| 43787 | .adjust = adjust, | ||
| 43788 | }; | 50732 | }; |
| 43789 | } | 50733 | } |
| 43790 | fn memiad(base: Ref.Sized, index: Ref, adjust: Adjust, disp: i32) Select.Operand { | 50734 | fn memiad(base: Ref.Sized, index: Ref, adjust: Adjust, disp: i32) Select.Operand { |
| 43791 | return .{ | 50735 | return .{ |
| 43792 | .tag = .mem, | 50736 | .flags = .{ .tag = .mem, .adjust = adjust }, |
| 43793 | .base = base, | 50737 | .base = base, |
| 43794 | .index = .{ .ref = index, .scale = .@"1" }, | 50738 | .index = .{ .ref = index }, |
| 43795 | .adjust = adjust, | ||
| 43796 | .imm = disp, | 50739 | .imm = disp, |
| 43797 | }; | 50740 | }; |
| 43798 | } | 50741 | } |
| 43799 | fn memid(base: Ref.Sized, index: Ref, disp: i32) Select.Operand { | 50742 | fn memid(base: Ref.Sized, index: Ref, disp: i32) Select.Operand { |
| 43800 | return .{ | 50743 | return .{ |
| 43801 | .tag = .mem, | 50744 | .flags = .{ .tag = .mem }, |
| 43802 | .base = base, | 50745 | .base = base, |
| 43803 | .index = .{ .ref = index, .scale = .@"1" }, | 50746 | .index = .{ .ref = index }, |
| 43804 | .imm = disp, | 50747 | .imm = disp, |
| 43805 | }; | 50748 | }; |
| 43806 | } | 50749 | } |
| 43807 | fn memsi(base: Ref.Sized, scale: Memory.Scale, index: Ref) Select.Operand { | 50750 | fn memsi(base: Ref.Sized, scale: Memory.Scale, index: Ref) Select.Operand { |
| 43808 | return .{ | 50751 | return .{ |
| 43809 | .tag = .mem, | 50752 | .flags = .{ .tag = .mem }, |
| 43810 | .base = base, | 50753 | .base = base, |
| 43811 | .index = .{ .ref = index, .scale = scale }, | 50754 | .index = .{ .ref = index, .scale = scale }, |
| 43812 | }; | 50755 | }; |
| 43813 | } | 50756 | } |
| 43814 | fn memsia(base: Ref.Sized, scale: Memory.Scale, index: Ref, adjust: Adjust) Select.Operand { | 50757 | fn memsia(base: Ref.Sized, scale: Memory.Scale, index: Ref, adjust: Adjust) Select.Operand { |
| 43815 | return .{ | 50758 | return .{ |
| 43816 | .tag = .mem, | 50759 | .flags = .{ .tag = .mem, .adjust = adjust }, |
| 43817 | .base = base, | 50760 | .base = base, |
| 43818 | .index = .{ .ref = index, .scale = scale }, | 50761 | .index = .{ .ref = index, .scale = scale }, |
| 43819 | .adjust = adjust, | ||
| 43820 | }; | 50762 | }; |
| 43821 | } | 50763 | } |
| 43822 | fn memsid(base: Ref.Sized, scale: Memory.Scale, index: Ref, disp: i32) Select.Operand { | 50764 | fn memsid(base: Ref.Sized, scale: Memory.Scale, index: Ref, disp: i32) Select.Operand { |
| 43823 | return .{ | 50765 | return .{ |
| 43824 | .tag = .mem, | 50766 | .flags = .{ .tag = .mem }, |
| 43825 | .base = base, | 50767 | .base = base, |
| 43826 | .index = .{ .ref = index, .scale = scale }, | 50768 | .index = .{ .ref = index, .scale = scale }, |
| 43827 | .imm = disp, | 50769 | .imm = disp, |
| ... | @@ -43829,10 +50771,9 @@ const Select = struct { | ... | @@ -43829,10 +50771,9 @@ const Select = struct { |
| 43829 | } | 50771 | } |
| 43830 | fn memsiad(base: Ref.Sized, scale: Memory.Scale, index: Ref, adjust: Adjust, disp: i32) Select.Operand { | 50772 | fn memsiad(base: Ref.Sized, scale: Memory.Scale, index: Ref, adjust: Adjust, disp: i32) Select.Operand { |
| 43831 | return .{ | 50773 | return .{ |
| 43832 | .tag = .mem, | 50774 | .flags = .{ .tag = .mem, .adjust = adjust }, |
| 43833 | .base = base, | 50775 | .base = base, |
| 43834 | .index = .{ .ref = index, .scale = scale }, | 50776 | .index = .{ .ref = index, .scale = scale }, |
| 43835 | .adjust = adjust, | ||
| 43836 | .imm = disp, | 50777 | .imm = disp, |
| 43837 | }; | 50778 | }; |
| 43838 | } | 50779 | } |
| ... | @@ -43841,16 +50782,20 @@ const Select = struct { | ... | @@ -43841,16 +50782,20 @@ const Select = struct { |
| 43841 | const UnsignedImm = @Type(.{ | 50782 | const UnsignedImm = @Type(.{ |
| 43842 | .int = .{ .signedness = .unsigned, .bits = @typeInfo(SignedImm).int.bits }, | 50783 | .int = .{ .signedness = .unsigned, .bits = @typeInfo(SignedImm).int.bits }, |
| 43843 | }); | 50784 | }); |
| 43844 | const lhs: SignedImm = lhs: switch (op.adjust.lhs) { | 50785 | const lhs: SignedImm = lhs: switch (op.flags.adjust.lhs) { |
| 43845 | .none => 0, | 50786 | .none => 0, |
| 43846 | .ptr_size => @divExact(s.cg.target.ptrBitWidth(), 8), | 50787 | .ptr_size => @divExact(s.cg.target.ptrBitWidth(), 8), |
| 43847 | .ptr_bit_size => s.cg.target.ptrBitWidth(), | 50788 | .ptr_bit_size => s.cg.target.ptrBitWidth(), |
| 43848 | .size => @intCast(op.base.ref.deref(s).typeOf(s.cg).abiSize(s.cg.pt.zcu)), | 50789 | .size => @intCast(op.base.ref.deref(s).typeOf(s.cg).abiSize(s.cg.pt.zcu)), |
| 50790 | .delta_size => @intCast(@as(SignedImm, @intCast(op.base.ref.deref(s).typeOf(s.cg).abiSize(s.cg.pt.zcu))) - | ||
| 50791 | @as(SignedImm, @intCast(op.index.ref.deref(s).typeOf(s.cg).abiSize(s.cg.pt.zcu)))), | ||
| 50792 | .delta_elem_size => @intCast(@as(SignedImm, @intCast(op.base.ref.deref(s).typeOf(s.cg).elemType2(s.cg.pt.zcu).abiSize(s.cg.pt.zcu))) - | ||
| 50793 | @as(SignedImm, @intCast(op.index.ref.deref(s).typeOf(s.cg).elemType2(s.cg.pt.zcu).abiSize(s.cg.pt.zcu)))), | ||
| 43849 | .size_sub_elem_size => { | 50794 | .size_sub_elem_size => { |
| 43850 | const ty = op.base.ref.deref(s).typeOf(s.cg); | 50795 | const ty = op.base.ref.deref(s).typeOf(s.cg); |
| 43851 | break :lhs @intCast(ty.abiSize(s.cg.pt.zcu) - ty.elemType2(s.cg.pt.zcu).abiSize(s.cg.pt.zcu)); | 50796 | break :lhs @intCast(ty.abiSize(s.cg.pt.zcu) - ty.elemType2(s.cg.pt.zcu).abiSize(s.cg.pt.zcu)); |
| 43852 | }, | 50797 | }, |
| 43853 | .src0_unaligned_size => @intCast(s.cg.unalignedSize(Select.Operand.Ref.src0.deref(s).typeOf(s.cg))), | 50798 | .unaligned_size => @intCast(s.cg.unalignedSize(op.base.ref.deref(s).typeOf(s.cg))), |
| 43854 | .bit_size => @intCast(op.base.ref.deref(s).typeOf(s.cg).scalarType(s.cg.pt.zcu).bitSize(s.cg.pt.zcu)), | 50799 | .bit_size => @intCast(op.base.ref.deref(s).typeOf(s.cg).scalarType(s.cg.pt.zcu).bitSize(s.cg.pt.zcu)), |
| 43855 | .src0_bit_size => @intCast(Select.Operand.Ref.src0.deref(s).typeOf(s.cg).scalarType(s.cg.pt.zcu).bitSize(s.cg.pt.zcu)), | 50800 | .src0_bit_size => @intCast(Select.Operand.Ref.src0.deref(s).typeOf(s.cg).scalarType(s.cg.pt.zcu).bitSize(s.cg.pt.zcu)), |
| 43856 | .len => @intCast(op.base.ref.deref(s).typeOf(s.cg).vectorLen(s.cg.pt.zcu)), | 50801 | .len => @intCast(op.base.ref.deref(s).typeOf(s.cg).vectorLen(s.cg.pt.zcu)), |
| ... | @@ -43858,6 +50803,7 @@ const Select = struct { | ... | @@ -43858,6 +50803,7 @@ const Select = struct { |
| 43858 | op.base.ref.deref(s).typeOf(s.cg).scalarType(s.cg.pt.zcu).abiSize(s.cg.pt.zcu), | 50803 | op.base.ref.deref(s).typeOf(s.cg).scalarType(s.cg.pt.zcu).abiSize(s.cg.pt.zcu), |
| 43859 | @divExact(op.base.size.bitSize(s.cg.target), 8), | 50804 | @divExact(op.base.size.bitSize(s.cg.target), 8), |
| 43860 | )), | 50805 | )), |
| 50806 | .elem_size => @intCast(op.base.ref.deref(s).typeOf(s.cg).elemType2(s.cg.pt.zcu).abiSize(s.cg.pt.zcu)), | ||
| 43861 | .src0_elem_size => @intCast(Select.Operand.Ref.src0.deref(s).typeOf(s.cg).elemType2(s.cg.pt.zcu).abiSize(s.cg.pt.zcu)), | 50807 | .src0_elem_size => @intCast(Select.Operand.Ref.src0.deref(s).typeOf(s.cg).elemType2(s.cg.pt.zcu).abiSize(s.cg.pt.zcu)), |
| 43862 | .src0_elem_size_times_src1 => @intCast(Select.Operand.Ref.src0.deref(s).typeOf(s.cg).elemType2(s.cg.pt.zcu).abiSize(s.cg.pt.zcu) * | 50808 | .src0_elem_size_times_src1 => @intCast(Select.Operand.Ref.src0.deref(s).typeOf(s.cg).elemType2(s.cg.pt.zcu).abiSize(s.cg.pt.zcu) * |
| 43863 | Select.Operand.Ref.src1.deref(s).tracking(s.cg).short.immediate), | 50809 | Select.Operand.Ref.src1.deref(s).tracking(s.cg).short.immediate), |
| ... | @@ -43872,8 +50818,8 @@ const Select = struct { | ... | @@ -43872,8 +50818,8 @@ const Select = struct { |
| 43872 | -%op.base.ref.deref(s).typeOf(s.cg).scalarType(s.cg.pt.zcu).bitSize(s.cg.pt.zcu), | 50818 | -%op.base.ref.deref(s).typeOf(s.cg).scalarType(s.cg.pt.zcu).bitSize(s.cg.pt.zcu), |
| 43873 | )), | 50819 | )), |
| 43874 | }; | 50820 | }; |
| 43875 | const rhs = op.adjust.rhs.toLog2(); | 50821 | const rhs = op.flags.adjust.rhs.toLog2(); |
| 43876 | const res = res: switch (op.adjust.op) { | 50822 | const res = res: switch (op.flags.adjust.op) { |
| 43877 | .mul => { | 50823 | .mul => { |
| 43878 | const res = @shlWithOverflow(lhs, rhs); | 50824 | const res = @shlWithOverflow(lhs, rhs); |
| 43879 | assert(res[1] == 0); | 50825 | assert(res[1] == 0); |
| ... | @@ -43881,14 +50827,14 @@ const Select = struct { | ... | @@ -43881,14 +50827,14 @@ const Select = struct { |
| 43881 | }, | 50827 | }, |
| 43882 | .div => @shrExact(lhs, rhs), | 50828 | .div => @shrExact(lhs, rhs), |
| 43883 | }; | 50829 | }; |
| 43884 | return switch (op.adjust.sign) { | 50830 | return switch (op.flags.adjust.sign) { |
| 43885 | .neg => op.imm - res, | 50831 | .neg => op.imm - res, |
| 43886 | .pos => op.imm + res, | 50832 | .pos => op.imm + res, |
| 43887 | }; | 50833 | }; |
| 43888 | } | 50834 | } |
| 43889 | 50835 | ||
| 43890 | fn lower(op: Select.Operand, s: *Select) !CodeGen.Operand { | 50836 | fn lower(op: Select.Operand, s: *Select) !CodeGen.Operand { |
| 43891 | return switch (op.tag) { | 50837 | return switch (op.flags.tag) { |
| 43892 | .none => .none, | 50838 | .none => .none, |
| 43893 | .backward_label => .{ .inst = s.labels[@intFromEnum(op.base.ref)].backward.? }, | 50839 | .backward_label => .{ .inst = s.labels[@intFromEnum(op.base.ref)].backward.? }, |
| 43894 | .forward_label => for (&s.labels[@intFromEnum(op.base.ref)].forward) |*label| { | 50840 | .forward_label => for (&s.labels[@intFromEnum(op.base.ref)].forward) |*label| { |
| ... | @@ -43945,11 +50891,11 @@ fn select( | ... | @@ -43945,11 +50891,11 @@ fn select( |
| 43945 | @setEvalBranchQuota(33_600); | 50891 | @setEvalBranchQuota(33_600); |
| 43946 | cases: for (cases) |case| { | 50892 | cases: for (cases) |case| { |
| 43947 | for (case.required_features) |required_feature| if (required_feature) |feature| if (!cg.hasFeature(feature)) continue :cases; | 50893 | for (case.required_features) |required_feature| if (required_feature) |feature| if (!cg.hasFeature(feature)) continue :cases; |
| 43948 | for (case.dst_constraints[0..dst_temps.len], dst_tys) |dst_constraint, dst_ty| if (!dst_constraint.accepts(dst_ty, cg)) continue :cases; | ||
| 43949 | for (case.src_constraints[0..src_temps.len], src_temps) |src_constraint, src_temp| if (!src_constraint.accepts(src_temp.typeOf(cg), cg)) continue :cases; | 50894 | for (case.src_constraints[0..src_temps.len], src_temps) |src_constraint, src_temp| if (!src_constraint.accepts(src_temp.typeOf(cg), cg)) continue :cases; |
| 50895 | for (case.dst_constraints[0..dst_temps.len], dst_tys) |dst_constraint, dst_ty| if (!dst_constraint.accepts(dst_ty, cg)) continue :cases; | ||
| 43950 | if (std.debug.runtime_safety) { | 50896 | if (std.debug.runtime_safety) { |
| 43951 | for (case.dst_constraints[dst_temps.len..]) |dst_constraint| assert(dst_constraint == .any); | ||
| 43952 | for (case.src_constraints[src_temps.len..]) |src_constraint| assert(src_constraint == .any); | 50897 | for (case.src_constraints[src_temps.len..]) |src_constraint| assert(src_constraint == .any); |
| 50898 | for (case.dst_constraints[dst_temps.len..]) |dst_constraint| assert(dst_constraint == .any); | ||
| 43953 | } | 50899 | } |
| 43954 | patterns: for (case.patterns) |pattern| { | 50900 | patterns: for (case.patterns) |pattern| { |
| 43955 | for (pattern.src[0..src_temps.len], src_temps) |src_pattern, src_temp| if (!src_pattern.matches(src_temp, cg)) continue :patterns; | 50901 | for (pattern.src[0..src_temps.len], src_temps) |src_pattern, src_temp| if (!src_pattern.matches(src_temp, cg)) continue :patterns; |
src/codegen/c.zig+1-43| ... | @@ -3325,7 +3325,6 @@ fn genBodyInner(f: *Function, body: []const Air.Inst.Index) error{ AnalysisFail, | ... | @@ -3325,7 +3325,6 @@ fn genBodyInner(f: *Function, body: []const Air.Inst.Index) error{ AnalysisFail, |
| 3325 | .bitcast => try airBitcast(f, inst), | 3325 | .bitcast => try airBitcast(f, inst), |
| 3326 | .intcast => try airIntCast(f, inst), | 3326 | .intcast => try airIntCast(f, inst), |
| 3327 | .trunc => try airTrunc(f, inst), | 3327 | .trunc => try airTrunc(f, inst), |
| 3328 | .int_from_bool => try airIntFromBool(f, inst), | ||
| 3329 | .load => try airLoad(f, inst), | 3328 | .load => try airLoad(f, inst), |
| 3330 | .store => try airStore(f, inst, false), | 3329 | .store => try airStore(f, inst, false), |
| 3331 | .store_safe => try airStore(f, inst, true), | 3330 | .store_safe => try airStore(f, inst, true), |
| ... | @@ -3371,8 +3370,6 @@ fn genBodyInner(f: *Function, body: []const Air.Inst.Index) error{ AnalysisFail, | ... | @@ -3371,8 +3370,6 @@ fn genBodyInner(f: *Function, body: []const Air.Inst.Index) error{ AnalysisFail, |
| 3371 | .fpext, | 3370 | .fpext, |
| 3372 | => try airFloatCast(f, inst), | 3371 | => try airFloatCast(f, inst), |
| 3373 | 3372 | ||
| 3374 | .int_from_ptr => try airIntFromPtr(f, inst), | ||
| 3375 | |||
| 3376 | .atomic_store_unordered => try airAtomicStore(f, inst, toMemoryOrder(.unordered)), | 3373 | .atomic_store_unordered => try airAtomicStore(f, inst, toMemoryOrder(.unordered)), |
| 3377 | .atomic_store_monotonic => try airAtomicStore(f, inst, toMemoryOrder(.monotonic)), | 3374 | .atomic_store_monotonic => try airAtomicStore(f, inst, toMemoryOrder(.monotonic)), |
| 3378 | .atomic_store_release => try airAtomicStore(f, inst, toMemoryOrder(.release)), | 3375 | .atomic_store_release => try airAtomicStore(f, inst, toMemoryOrder(.release)), |
| ... | @@ -3983,21 +3980,6 @@ fn airTrunc(f: *Function, inst: Air.Inst.Index) !CValue { | ... | @@ -3983,21 +3980,6 @@ fn airTrunc(f: *Function, inst: Air.Inst.Index) !CValue { |
| 3983 | return local; | 3980 | return local; |
| 3984 | } | 3981 | } |
| 3985 | 3982 | ||
| 3986 | fn airIntFromBool(f: *Function, inst: Air.Inst.Index) !CValue { | ||
| 3987 | const un_op = f.air.instructions.items(.data)[@intFromEnum(inst)].un_op; | ||
| 3988 | const operand = try f.resolveInst(un_op); | ||
| 3989 | try reap(f, inst, &.{un_op}); | ||
| 3990 | const writer = f.object.writer(); | ||
| 3991 | const inst_ty = f.typeOfIndex(inst); | ||
| 3992 | const local = try f.allocLocal(inst, inst_ty); | ||
| 3993 | const a = try Assignment.start(f, writer, try f.ctypeFromType(inst_ty, .complete)); | ||
| 3994 | try f.writeCValue(writer, local, .Other); | ||
| 3995 | try a.assign(f, writer); | ||
| 3996 | try f.writeCValue(writer, operand, .Other); | ||
| 3997 | try a.end(f, writer); | ||
| 3998 | return local; | ||
| 3999 | } | ||
| 4000 | |||
| 4001 | fn airStore(f: *Function, inst: Air.Inst.Index, safety: bool) !CValue { | 3983 | fn airStore(f: *Function, inst: Air.Inst.Index, safety: bool) !CValue { |
| 4002 | const pt = f.object.dg.pt; | 3984 | const pt = f.object.dg.pt; |
| 4003 | const zcu = pt.zcu; | 3985 | const zcu = pt.zcu; |
| ... | @@ -4970,7 +4952,7 @@ fn bitcast(f: *Function, dest_ty: Type, operand: CValue, operand_ty: Type) !CVal | ... | @@ -4970,7 +4952,7 @@ fn bitcast(f: *Function, dest_ty: Type, operand: CValue, operand_ty: Type) !CVal |
| 4970 | src_info.bits == dest_info.bits) return operand; | 4952 | src_info.bits == dest_info.bits) return operand; |
| 4971 | } | 4953 | } |
| 4972 | 4954 | ||
| 4973 | if (dest_ty.isPtrAtRuntime(zcu) and operand_ty.isPtrAtRuntime(zcu)) { | 4955 | if (dest_ty.isPtrAtRuntime(zcu) or operand_ty.isPtrAtRuntime(zcu)) { |
| 4974 | const local = try f.allocLocal(null, dest_ty); | 4956 | const local = try f.allocLocal(null, dest_ty); |
| 4975 | try f.writeCValue(writer, local, .Other); | 4957 | try f.writeCValue(writer, local, .Other); |
| 4976 | try writer.writeAll(" = ("); | 4958 | try writer.writeAll(" = ("); |
| ... | @@ -6455,30 +6437,6 @@ fn airFloatCast(f: *Function, inst: Air.Inst.Index) !CValue { | ... | @@ -6455,30 +6437,6 @@ fn airFloatCast(f: *Function, inst: Air.Inst.Index) !CValue { |
| 6455 | return local; | 6437 | return local; |
| 6456 | } | 6438 | } |
| 6457 | 6439 | ||
| 6458 | fn airIntFromPtr(f: *Function, inst: Air.Inst.Index) !CValue { | ||
| 6459 | const pt = f.object.dg.pt; | ||
| 6460 | const zcu = pt.zcu; | ||
| 6461 | const un_op = f.air.instructions.items(.data)[@intFromEnum(inst)].un_op; | ||
| 6462 | |||
| 6463 | const operand = try f.resolveInst(un_op); | ||
| 6464 | const operand_ty = f.typeOf(un_op); | ||
| 6465 | try reap(f, inst, &.{un_op}); | ||
| 6466 | const inst_ty = f.typeOfIndex(inst); | ||
| 6467 | const writer = f.object.writer(); | ||
| 6468 | const local = try f.allocLocal(inst, inst_ty); | ||
| 6469 | try f.writeCValue(writer, local, .Other); | ||
| 6470 | |||
| 6471 | try writer.writeAll(" = ("); | ||
| 6472 | try f.renderType(writer, inst_ty); | ||
| 6473 | try writer.writeByte(')'); | ||
| 6474 | if (operand_ty.isSlice(zcu)) | ||
| 6475 | try f.writeCValueMember(writer, operand, .{ .identifier = "ptr" }) | ||
| 6476 | else | ||
| 6477 | try f.writeCValue(writer, operand, .Other); | ||
| 6478 | try writer.writeAll(";\n"); | ||
| 6479 | return local; | ||
| 6480 | } | ||
| 6481 | |||
| 6482 | fn airUnBuiltinCall( | 6440 | fn airUnBuiltinCall( |
| 6483 | f: *Function, | 6441 | f: *Function, |
| 6484 | inst: Air.Inst.Index, | 6442 | inst: Air.Inst.Index, |
src/codegen/c/Type.zig+15| ... | @@ -1707,6 +1707,21 @@ pub const Pool = struct { | ... | @@ -1707,6 +1707,21 @@ pub const Pool = struct { |
| 1707 | }; | 1707 | }; |
| 1708 | return pool.fromFields(allocator, .@"struct", &fields, kind); | 1708 | return pool.fromFields(allocator, .@"struct", &fields, kind); |
| 1709 | }, | 1709 | }, |
| 1710 | .vector_2_f32_type => { | ||
| 1711 | const vector_ctype = try pool.getVector(allocator, .{ | ||
| 1712 | .elem_ctype = .f32, | ||
| 1713 | .len = 2, | ||
| 1714 | }); | ||
| 1715 | if (!kind.isParameter()) return vector_ctype; | ||
| 1716 | var fields = [_]Info.Field{ | ||
| 1717 | .{ | ||
| 1718 | .name = .{ .index = .array }, | ||
| 1719 | .ctype = vector_ctype, | ||
| 1720 | .alignas = AlignAs.fromAbiAlignment(Type.f32.abiAlignment(zcu)), | ||
| 1721 | }, | ||
| 1722 | }; | ||
| 1723 | return pool.fromFields(allocator, .@"struct", &fields, kind); | ||
| 1724 | }, | ||
| 1710 | .vector_4_f32_type => { | 1725 | .vector_4_f32_type => { |
| 1711 | const vector_ctype = try pool.getVector(allocator, .{ | 1726 | const vector_ctype = try pool.getVector(allocator, .{ |
| 1712 | .elem_ctype = .f32, | 1727 | .elem_ctype = .f32, |
src/codegen/llvm.zig+4-18| ... | @@ -5154,7 +5154,6 @@ pub const FuncGen = struct { | ... | @@ -5154,7 +5154,6 @@ pub const FuncGen = struct { |
| 5154 | .ret_ptr => try self.airRetPtr(inst), | 5154 | .ret_ptr => try self.airRetPtr(inst), |
| 5155 | .arg => try self.airArg(inst), | 5155 | .arg => try self.airArg(inst), |
| 5156 | .bitcast => try self.airBitCast(inst), | 5156 | .bitcast => try self.airBitCast(inst), |
| 5157 | .int_from_bool => try self.airIntFromBool(inst), | ||
| 5158 | .breakpoint => try self.airBreakpoint(inst), | 5157 | .breakpoint => try self.airBreakpoint(inst), |
| 5159 | .ret_addr => try self.airRetAddr(inst), | 5158 | .ret_addr => try self.airRetAddr(inst), |
| 5160 | .frame_addr => try self.airFrameAddress(inst), | 5159 | .frame_addr => try self.airFrameAddress(inst), |
| ... | @@ -5167,7 +5166,6 @@ pub const FuncGen = struct { | ... | @@ -5167,7 +5166,6 @@ pub const FuncGen = struct { |
| 5167 | .trunc => try self.airTrunc(inst), | 5166 | .trunc => try self.airTrunc(inst), |
| 5168 | .fptrunc => try self.airFptrunc(inst), | 5167 | .fptrunc => try self.airFptrunc(inst), |
| 5169 | .fpext => try self.airFpext(inst), | 5168 | .fpext => try self.airFpext(inst), |
| 5170 | .int_from_ptr => try self.airIntFromPtr(inst), | ||
| 5171 | .load => try self.airLoad(body[i..]), | 5169 | .load => try self.airLoad(body[i..]), |
| 5172 | .not => try self.airNot(inst), | 5170 | .not => try self.airNot(inst), |
| 5173 | .store => try self.airStore(inst, false), | 5171 | .store => try self.airStore(inst, false), |
| ... | @@ -9435,16 +9433,6 @@ pub const FuncGen = struct { | ... | @@ -9435,16 +9433,6 @@ pub const FuncGen = struct { |
| 9435 | } | 9433 | } |
| 9436 | } | 9434 | } |
| 9437 | 9435 | ||
| 9438 | fn airIntFromPtr(self: *FuncGen, inst: Air.Inst.Index) !Builder.Value { | ||
| 9439 | const o = self.ng.object; | ||
| 9440 | const un_op = self.air.instructions.items(.data)[@intFromEnum(inst)].un_op; | ||
| 9441 | const operand = try self.resolveInst(un_op); | ||
| 9442 | const ptr_ty = self.typeOf(un_op); | ||
| 9443 | const operand_ptr = try self.sliceOrArrayPtr(operand, ptr_ty); | ||
| 9444 | const dest_llvm_ty = try o.lowerType(self.typeOfIndex(inst)); | ||
| 9445 | return self.wip.cast(.ptrtoint, operand_ptr, dest_llvm_ty, ""); | ||
| 9446 | } | ||
| 9447 | |||
| 9448 | fn airBitCast(self: *FuncGen, inst: Air.Inst.Index) !Builder.Value { | 9436 | fn airBitCast(self: *FuncGen, inst: Air.Inst.Index) !Builder.Value { |
| 9449 | const ty_op = self.air.instructions.items(.data)[@intFromEnum(inst)].ty_op; | 9437 | const ty_op = self.air.instructions.items(.data)[@intFromEnum(inst)].ty_op; |
| 9450 | const operand_ty = self.typeOf(ty_op.operand); | 9438 | const operand_ty = self.typeOf(ty_op.operand); |
| ... | @@ -9476,6 +9464,10 @@ pub const FuncGen = struct { | ... | @@ -9476,6 +9464,10 @@ pub const FuncGen = struct { |
| 9476 | return self.wip.cast(.inttoptr, operand, llvm_dest_ty, ""); | 9464 | return self.wip.cast(.inttoptr, operand, llvm_dest_ty, ""); |
| 9477 | } | 9465 | } |
| 9478 | 9466 | ||
| 9467 | if (operand_ty.isPtrAtRuntime(zcu) and inst_ty.zigTypeTag(zcu) == .int) { | ||
| 9468 | return self.wip.cast(.ptrtoint, operand, llvm_dest_ty, ""); | ||
| 9469 | } | ||
| 9470 | |||
| 9479 | if (operand_ty.zigTypeTag(zcu) == .vector and inst_ty.zigTypeTag(zcu) == .array) { | 9471 | if (operand_ty.zigTypeTag(zcu) == .vector and inst_ty.zigTypeTag(zcu) == .array) { |
| 9480 | const elem_ty = operand_ty.childType(zcu); | 9472 | const elem_ty = operand_ty.childType(zcu); |
| 9481 | if (!result_is_ref) { | 9473 | if (!result_is_ref) { |
| ... | @@ -9564,12 +9556,6 @@ pub const FuncGen = struct { | ... | @@ -9564,12 +9556,6 @@ pub const FuncGen = struct { |
| 9564 | return self.wip.cast(.bitcast, operand, llvm_dest_ty, ""); | 9556 | return self.wip.cast(.bitcast, operand, llvm_dest_ty, ""); |
| 9565 | } | 9557 | } |
| 9566 | 9558 | ||
| 9567 | fn airIntFromBool(self: *FuncGen, inst: Air.Inst.Index) !Builder.Value { | ||
| 9568 | const un_op = self.air.instructions.items(.data)[@intFromEnum(inst)].un_op; | ||
| 9569 | const operand = try self.resolveInst(un_op); | ||
| 9570 | return operand; | ||
| 9571 | } | ||
| 9572 | |||
| 9573 | fn airArg(self: *FuncGen, inst: Air.Inst.Index) !Builder.Value { | 9559 | fn airArg(self: *FuncGen, inst: Air.Inst.Index) !Builder.Value { |
| 9574 | const o = self.ng.object; | 9560 | const o = self.ng.object; |
| 9575 | const pt = o.pt; | 9561 | const pt = o.pt; |
src/codegen/spirv.zig+6-16| ... | @@ -3449,10 +3449,8 @@ const NavGen = struct { | ... | @@ -3449,10 +3449,8 @@ const NavGen = struct { |
| 3449 | 3449 | ||
| 3450 | .bitcast => try self.airBitCast(inst), | 3450 | .bitcast => try self.airBitCast(inst), |
| 3451 | .intcast, .trunc => try self.airIntCast(inst), | 3451 | .intcast, .trunc => try self.airIntCast(inst), |
| 3452 | .int_from_ptr => try self.airIntFromPtr(inst), | ||
| 3453 | .float_from_int => try self.airFloatFromInt(inst), | 3452 | .float_from_int => try self.airFloatFromInt(inst), |
| 3454 | .int_from_float => try self.airIntFromFloat(inst), | 3453 | .int_from_float => try self.airIntFromFloat(inst), |
| 3455 | .int_from_bool => try self.airIntFromBool(inst), | ||
| 3456 | .fpext, .fptrunc => try self.airFloatCast(inst), | 3454 | .fpext, .fptrunc => try self.airFloatCast(inst), |
| 3457 | .not => try self.airNot(inst), | 3455 | .not => try self.airNot(inst), |
| 3458 | 3456 | ||
| ... | @@ -4706,9 +4704,14 @@ const NavGen = struct { | ... | @@ -4706,9 +4704,14 @@ const NavGen = struct { |
| 4706 | 4704 | ||
| 4707 | fn airBitCast(self: *NavGen, inst: Air.Inst.Index) !?IdRef { | 4705 | fn airBitCast(self: *NavGen, inst: Air.Inst.Index) !?IdRef { |
| 4708 | const ty_op = self.air.instructions.items(.data)[@intFromEnum(inst)].ty_op; | 4706 | const ty_op = self.air.instructions.items(.data)[@intFromEnum(inst)].ty_op; |
| 4709 | const operand_id = try self.resolve(ty_op.operand); | ||
| 4710 | const operand_ty = self.typeOf(ty_op.operand); | 4707 | const operand_ty = self.typeOf(ty_op.operand); |
| 4711 | const result_ty = self.typeOfIndex(inst); | 4708 | const result_ty = self.typeOfIndex(inst); |
| 4709 | if (operand_ty.toIntern() == .bool_type) { | ||
| 4710 | const operand = try self.temporary(ty_op.operand); | ||
| 4711 | const result = try self.intFromBool(operand); | ||
| 4712 | return try result.materialize(self); | ||
| 4713 | } | ||
| 4714 | const operand_id = try self.resolve(ty_op.operand); | ||
| 4712 | return try self.bitCast(result_ty, operand_ty, operand_id); | 4715 | return try self.bitCast(result_ty, operand_ty, operand_id); |
| 4713 | } | 4716 | } |
| 4714 | 4717 | ||
| ... | @@ -4749,12 +4752,6 @@ const NavGen = struct { | ... | @@ -4749,12 +4752,6 @@ const NavGen = struct { |
| 4749 | return result_id; | 4752 | return result_id; |
| 4750 | } | 4753 | } |
| 4751 | 4754 | ||
| 4752 | fn airIntFromPtr(self: *NavGen, inst: Air.Inst.Index) !?IdRef { | ||
| 4753 | const un_op = self.air.instructions.items(.data)[@intFromEnum(inst)].un_op; | ||
| 4754 | const operand_id = try self.resolve(un_op); | ||
| 4755 | return try self.intFromPtr(operand_id); | ||
| 4756 | } | ||
| 4757 | |||
| 4758 | fn airFloatFromInt(self: *NavGen, inst: Air.Inst.Index) !?IdRef { | 4755 | fn airFloatFromInt(self: *NavGen, inst: Air.Inst.Index) !?IdRef { |
| 4759 | const ty_op = self.air.instructions.items(.data)[@intFromEnum(inst)].ty_op; | 4756 | const ty_op = self.air.instructions.items(.data)[@intFromEnum(inst)].ty_op; |
| 4760 | const operand_ty = self.typeOf(ty_op.operand); | 4757 | const operand_ty = self.typeOf(ty_op.operand); |
| ... | @@ -4808,13 +4805,6 @@ const NavGen = struct { | ... | @@ -4808,13 +4805,6 @@ const NavGen = struct { |
| 4808 | return result_id; | 4805 | return result_id; |
| 4809 | } | 4806 | } |
| 4810 | 4807 | ||
| 4811 | fn airIntFromBool(self: *NavGen, inst: Air.Inst.Index) !?IdRef { | ||
| 4812 | const un_op = self.air.instructions.items(.data)[@intFromEnum(inst)].un_op; | ||
| 4813 | const operand = try self.temporary(un_op); | ||
| 4814 | const result = try self.intFromBool(operand); | ||
| 4815 | return try result.materialize(self); | ||
| 4816 | } | ||
| 4817 | |||
| 4818 | fn airFloatCast(self: *NavGen, inst: Air.Inst.Index) !?IdRef { | 4808 | fn airFloatCast(self: *NavGen, inst: Air.Inst.Index) !?IdRef { |
| 4819 | const ty_op = self.air.instructions.items(.data)[@intFromEnum(inst)].ty_op; | 4809 | const ty_op = self.air.instructions.items(.data)[@intFromEnum(inst)].ty_op; |
| 4820 | const operand_id = try self.resolve(ty_op.operand); | 4810 | const operand_id = try self.resolve(ty_op.operand); |
src/print_air.zig-2| ... | @@ -172,8 +172,6 @@ const Writer = struct { | ... | @@ -172,8 +172,6 @@ const Writer = struct { |
| 172 | .is_non_err, | 172 | .is_non_err, |
| 173 | .is_err_ptr, | 173 | .is_err_ptr, |
| 174 | .is_non_err_ptr, | 174 | .is_non_err_ptr, |
| 175 | .int_from_ptr, | ||
| 176 | .int_from_bool, | ||
| 177 | .ret, | 175 | .ret, |
| 178 | .ret_safe, | 176 | .ret_safe, |
| 179 | .ret_load, | 177 | .ret_load, |
src/target.zig+3| ... | @@ -745,5 +745,8 @@ pub inline fn backendSupportsFeature(backend: std.builtin.CompilerBackend, compt | ... | @@ -745,5 +745,8 @@ pub inline fn backendSupportsFeature(backend: std.builtin.CompilerBackend, compt |
| 745 | .stage2_llvm => false, | 745 | .stage2_llvm => false, |
| 746 | else => true, | 746 | else => true, |
| 747 | }, | 747 | }, |
| 748 | .all_vector_instructions => switch (backend) { | ||
| 749 | else => false, | ||
| 750 | }, | ||
| 748 | }; | 751 | }; |
| 749 | } | 752 | } |
test/behavior/maximum_minimum.zig+3-4| ... | @@ -203,8 +203,8 @@ test "@min/@max notices vector bounds" { | ... | @@ -203,8 +203,8 @@ test "@min/@max notices vector bounds" { |
| 203 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO | 203 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO |
| 204 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO | 204 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO |
| 205 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO | 205 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 206 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; | ||
| 207 | if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest; | 206 | if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest; |
| 207 | if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest; | ||
| 208 | 208 | ||
| 209 | var x: @Vector(2, u16) = .{ 140, 40 }; | 209 | var x: @Vector(2, u16) = .{ 140, 40 }; |
| 210 | const y: @Vector(2, u64) = .{ 5, 100 }; | 210 | const y: @Vector(2, u64) = .{ 5, 100 }; |
| ... | @@ -257,8 +257,8 @@ test "@min/@max notices bounds from vector types" { | ... | @@ -257,8 +257,8 @@ test "@min/@max notices bounds from vector types" { |
| 257 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO | 257 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO |
| 258 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO | 258 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO |
| 259 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO | 259 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 260 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; | ||
| 261 | if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest; | 260 | if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest; |
| 261 | if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest; | ||
| 262 | 262 | ||
| 263 | var x: @Vector(2, u16) = .{ 30, 67 }; | 263 | var x: @Vector(2, u16) = .{ 30, 67 }; |
| 264 | var y: @Vector(2, u32) = .{ 20, 500 }; | 264 | var y: @Vector(2, u32) = .{ 20, 500 }; |
| ... | @@ -301,8 +301,7 @@ test "@min/@max notices bounds from vector types when element of comptime-known | ... | @@ -301,8 +301,7 @@ test "@min/@max notices bounds from vector types when element of comptime-known |
| 301 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO | 301 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO |
| 302 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO | 302 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 303 | if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest; | 303 | if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest; |
| 304 | if (builtin.zig_backend == .stage2_x86_64 and | 304 | if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest; |
| 305 | !comptime std.Target.x86.featureSetHas(builtin.cpu.features, .sse4_1)) return error.SkipZigTest; | ||
| 306 | 305 | ||
| 307 | var x: @Vector(2, u32) = .{ 1_000_000, 12345 }; | 306 | var x: @Vector(2, u32) = .{ 1_000_000, 12345 }; |
| 308 | _ = &x; | 307 | _ = &x; |
test/behavior/x86_64/math.zig+6749-1198| ... | @@ -24,27 +24,32 @@ inline fn runtime(comptime Type: type, comptime value: Type) Type { | ... | @@ -24,27 +24,32 @@ inline fn runtime(comptime Type: type, comptime value: Type) Type { |
| 24 | }.variable; | 24 | }.variable; |
| 25 | } | 25 | } |
| 26 | 26 | ||
| 27 | fn Scalar(comptime Type: type) type { | ||
| 28 | return switch (@typeInfo(Type)) { | ||
| 29 | else => Type, | ||
| 30 | .vector => |info| info.child, | ||
| 31 | }; | ||
| 32 | } | ||
| 33 | // inline to avoid a runtime `@splat` | ||
| 34 | inline fn splat(comptime Type: type, scalar: Scalar(Type)) Type { | ||
| 35 | return switch (@typeInfo(Type)) { | ||
| 36 | else => scalar, | ||
| 37 | .vector => @splat(scalar), | ||
| 38 | }; | ||
| 39 | } | ||
| 27 | fn sign(rhs: anytype) switch (@typeInfo(@TypeOf(rhs))) { | 40 | fn sign(rhs: anytype) switch (@typeInfo(@TypeOf(rhs))) { |
| 28 | else => bool, | 41 | else => bool, |
| 29 | .vector => |vector| @Vector(vector.len, bool), | 42 | .vector => |vector| @Vector(vector.len, bool), |
| 30 | } { | 43 | } { |
| 31 | switch (@typeInfo(@TypeOf(rhs))) { | 44 | const ScalarInt = @Type(.{ .int = .{ |
| 32 | else => { | 45 | .signedness = .unsigned, |
| 33 | const I = @Type(.{ .int = .{ | 46 | .bits = @bitSizeOf(Scalar(@TypeOf(rhs))), |
| 34 | .signedness = .unsigned, | 47 | } }); |
| 35 | .bits = @bitSizeOf(@TypeOf(rhs)), | 48 | const VectorInt = switch (@typeInfo(@TypeOf(rhs))) { |
| 36 | } }); | 49 | else => ScalarInt, |
| 37 | return @as(I, @bitCast(rhs)) & @as(I, 1) << (@bitSizeOf(I) - 1) != 0; | 50 | .vector => |vector| @Vector(vector.len, ScalarInt), |
| 38 | }, | 51 | }; |
| 39 | .vector => |vector| { | 52 | return @as(VectorInt, @bitCast(rhs)) & splat(VectorInt, @as(ScalarInt, 1) << @bitSizeOf(ScalarInt) - 1) != splat(VectorInt, 0); |
| 40 | const I = @Type(.{ .int = .{ | ||
| 41 | .signedness = .unsigned, | ||
| 42 | .bits = @bitSizeOf(vector.child), | ||
| 43 | } }); | ||
| 44 | const V = @Vector(vector.len, I); | ||
| 45 | return @as(V, @bitCast(rhs)) & @as(V, @splat(@as(I, 1) << (@bitSizeOf(I) - 1))) != @as(V, @splat(0)); | ||
| 46 | }, | ||
| 47 | } | ||
| 48 | } | 53 | } |
| 49 | fn boolAnd(lhs: anytype, rhs: @TypeOf(lhs)) @TypeOf(lhs) { | 54 | fn boolAnd(lhs: anytype, rhs: @TypeOf(lhs)) @TypeOf(lhs) { |
| 50 | switch (@typeInfo(@TypeOf(lhs))) { | 55 | switch (@typeInfo(@TypeOf(lhs))) { |
| ... | @@ -650,18 +655,18 @@ fn unary(comptime op: anytype, comptime opts: struct { strict: bool = false }) t | ... | @@ -650,18 +655,18 @@ fn unary(comptime op: anytype, comptime opts: struct { strict: bool = false }) t |
| 650 | try testArgs(f16, -nan(f16)); | 655 | try testArgs(f16, -nan(f16)); |
| 651 | try testArgs(f16, -inf(f16)); | 656 | try testArgs(f16, -inf(f16)); |
| 652 | try testArgs(f16, -fmax(f16)); | 657 | try testArgs(f16, -fmax(f16)); |
| 653 | try testArgs(f16, -10.0); | 658 | try testArgs(f16, -1e1); |
| 654 | try testArgs(f16, -1.0); | 659 | try testArgs(f16, -1e0); |
| 655 | try testArgs(f16, -0.1); | 660 | try testArgs(f16, -1e-1); |
| 656 | try testArgs(f16, -fmin(f16)); | 661 | try testArgs(f16, -fmin(f16)); |
| 657 | try testArgs(f16, -tmin(f16)); | 662 | try testArgs(f16, -tmin(f16)); |
| 658 | try testArgs(f16, -0.0); | 663 | try testArgs(f16, -0.0); |
| 659 | try testArgs(f16, 0.0); | 664 | try testArgs(f16, 0.0); |
| 660 | try testArgs(f16, tmin(f16)); | 665 | try testArgs(f16, tmin(f16)); |
| 661 | try testArgs(f16, fmin(f16)); | 666 | try testArgs(f16, fmin(f16)); |
| 662 | try testArgs(f16, 0.1); | 667 | try testArgs(f16, 1e-1); |
| 663 | try testArgs(f16, 1.0); | 668 | try testArgs(f16, 1e0); |
| 664 | try testArgs(f16, 10.0); | 669 | try testArgs(f16, 1e1); |
| 665 | try testArgs(f16, fmax(f16)); | 670 | try testArgs(f16, fmax(f16)); |
| 666 | try testArgs(f16, inf(f16)); | 671 | try testArgs(f16, inf(f16)); |
| 667 | try testArgs(f16, nan(f16)); | 672 | try testArgs(f16, nan(f16)); |
| ... | @@ -669,18 +674,18 @@ fn unary(comptime op: anytype, comptime opts: struct { strict: bool = false }) t | ... | @@ -669,18 +674,18 @@ fn unary(comptime op: anytype, comptime opts: struct { strict: bool = false }) t |
| 669 | try testArgs(f32, -nan(f32)); | 674 | try testArgs(f32, -nan(f32)); |
| 670 | try testArgs(f32, -inf(f32)); | 675 | try testArgs(f32, -inf(f32)); |
| 671 | try testArgs(f32, -fmax(f32)); | 676 | try testArgs(f32, -fmax(f32)); |
| 672 | try testArgs(f32, -10.0); | 677 | try testArgs(f32, -1e1); |
| 673 | try testArgs(f32, -1.0); | 678 | try testArgs(f32, -1e0); |
| 674 | try testArgs(f32, -0.1); | 679 | try testArgs(f32, -1e-1); |
| 675 | try testArgs(f32, -fmin(f32)); | 680 | try testArgs(f32, -fmin(f32)); |
| 676 | try testArgs(f32, -tmin(f32)); | 681 | try testArgs(f32, -tmin(f32)); |
| 677 | try testArgs(f32, -0.0); | 682 | try testArgs(f32, -0.0); |
| 678 | try testArgs(f32, 0.0); | 683 | try testArgs(f32, 0.0); |
| 679 | try testArgs(f32, tmin(f32)); | 684 | try testArgs(f32, tmin(f32)); |
| 680 | try testArgs(f32, fmin(f32)); | 685 | try testArgs(f32, fmin(f32)); |
| 681 | try testArgs(f32, 0.1); | 686 | try testArgs(f32, 1e-1); |
| 682 | try testArgs(f32, 1.0); | 687 | try testArgs(f32, 1e0); |
| 683 | try testArgs(f32, 10.0); | 688 | try testArgs(f32, 1e1); |
| 684 | try testArgs(f32, fmax(f32)); | 689 | try testArgs(f32, fmax(f32)); |
| 685 | try testArgs(f32, inf(f32)); | 690 | try testArgs(f32, inf(f32)); |
| 686 | try testArgs(f32, nan(f32)); | 691 | try testArgs(f32, nan(f32)); |
| ... | @@ -688,18 +693,18 @@ fn unary(comptime op: anytype, comptime opts: struct { strict: bool = false }) t | ... | @@ -688,18 +693,18 @@ fn unary(comptime op: anytype, comptime opts: struct { strict: bool = false }) t |
| 688 | try testArgs(f64, -nan(f64)); | 693 | try testArgs(f64, -nan(f64)); |
| 689 | try testArgs(f64, -inf(f64)); | 694 | try testArgs(f64, -inf(f64)); |
| 690 | try testArgs(f64, -fmax(f64)); | 695 | try testArgs(f64, -fmax(f64)); |
| 691 | try testArgs(f64, -10.0); | 696 | try testArgs(f64, -1e1); |
| 692 | try testArgs(f64, -1.0); | 697 | try testArgs(f64, -1e0); |
| 693 | try testArgs(f64, -0.1); | 698 | try testArgs(f64, -1e-1); |
| 694 | try testArgs(f64, -fmin(f64)); | 699 | try testArgs(f64, -fmin(f64)); |
| 695 | try testArgs(f64, -tmin(f64)); | 700 | try testArgs(f64, -tmin(f64)); |
| 696 | try testArgs(f64, -0.0); | 701 | try testArgs(f64, -0.0); |
| 697 | try testArgs(f64, 0.0); | 702 | try testArgs(f64, 0.0); |
| 698 | try testArgs(f64, tmin(f64)); | 703 | try testArgs(f64, tmin(f64)); |
| 699 | try testArgs(f64, fmin(f64)); | 704 | try testArgs(f64, fmin(f64)); |
| 700 | try testArgs(f64, 0.1); | 705 | try testArgs(f64, 1e-1); |
| 701 | try testArgs(f64, 1.0); | 706 | try testArgs(f64, 1e0); |
| 702 | try testArgs(f64, 10.0); | 707 | try testArgs(f64, 1e1); |
| 703 | try testArgs(f64, fmax(f64)); | 708 | try testArgs(f64, fmax(f64)); |
| 704 | try testArgs(f64, inf(f64)); | 709 | try testArgs(f64, inf(f64)); |
| 705 | try testArgs(f64, nan(f64)); | 710 | try testArgs(f64, nan(f64)); |
| ... | @@ -707,18 +712,18 @@ fn unary(comptime op: anytype, comptime opts: struct { strict: bool = false }) t | ... | @@ -707,18 +712,18 @@ fn unary(comptime op: anytype, comptime opts: struct { strict: bool = false }) t |
| 707 | try testArgs(f80, -nan(f80)); | 712 | try testArgs(f80, -nan(f80)); |
| 708 | try testArgs(f80, -inf(f80)); | 713 | try testArgs(f80, -inf(f80)); |
| 709 | try testArgs(f80, -fmax(f80)); | 714 | try testArgs(f80, -fmax(f80)); |
| 710 | try testArgs(f80, -10.0); | 715 | try testArgs(f80, -1e1); |
| 711 | try testArgs(f80, -1.0); | 716 | try testArgs(f80, -1e0); |
| 712 | try testArgs(f80, -0.1); | 717 | try testArgs(f80, -1e-1); |
| 713 | try testArgs(f80, -fmin(f80)); | 718 | try testArgs(f80, -fmin(f80)); |
| 714 | try testArgs(f80, -tmin(f80)); | 719 | try testArgs(f80, -tmin(f80)); |
| 715 | try testArgs(f80, -0.0); | 720 | try testArgs(f80, -0.0); |
| 716 | try testArgs(f80, 0.0); | 721 | try testArgs(f80, 0.0); |
| 717 | try testArgs(f80, tmin(f80)); | 722 | try testArgs(f80, tmin(f80)); |
| 718 | try testArgs(f80, fmin(f80)); | 723 | try testArgs(f80, fmin(f80)); |
| 719 | try testArgs(f80, 0.1); | 724 | try testArgs(f80, 1e-1); |
| 720 | try testArgs(f80, 1.0); | 725 | try testArgs(f80, 1e0); |
| 721 | try testArgs(f80, 10.0); | 726 | try testArgs(f80, 1e1); |
| 722 | try testArgs(f80, fmax(f80)); | 727 | try testArgs(f80, fmax(f80)); |
| 723 | try testArgs(f80, inf(f80)); | 728 | try testArgs(f80, inf(f80)); |
| 724 | try testArgs(f80, nan(f80)); | 729 | try testArgs(f80, nan(f80)); |
| ... | @@ -726,18 +731,18 @@ fn unary(comptime op: anytype, comptime opts: struct { strict: bool = false }) t | ... | @@ -726,18 +731,18 @@ fn unary(comptime op: anytype, comptime opts: struct { strict: bool = false }) t |
| 726 | try testArgs(f128, -nan(f128)); | 731 | try testArgs(f128, -nan(f128)); |
| 727 | try testArgs(f128, -inf(f128)); | 732 | try testArgs(f128, -inf(f128)); |
| 728 | try testArgs(f128, -fmax(f128)); | 733 | try testArgs(f128, -fmax(f128)); |
| 729 | try testArgs(f128, -10.0); | 734 | try testArgs(f128, -1e1); |
| 730 | try testArgs(f128, -1.0); | 735 | try testArgs(f128, -1e0); |
| 731 | try testArgs(f128, -0.1); | 736 | try testArgs(f128, -1e-1); |
| 732 | try testArgs(f128, -fmin(f128)); | 737 | try testArgs(f128, -fmin(f128)); |
| 733 | try testArgs(f128, -tmin(f128)); | 738 | try testArgs(f128, -tmin(f128)); |
| 734 | try testArgs(f128, -0.0); | 739 | try testArgs(f128, -0.0); |
| 735 | try testArgs(f128, 0.0); | 740 | try testArgs(f128, 0.0); |
| 736 | try testArgs(f128, tmin(f128)); | 741 | try testArgs(f128, tmin(f128)); |
| 737 | try testArgs(f128, fmin(f128)); | 742 | try testArgs(f128, fmin(f128)); |
| 738 | try testArgs(f128, 0.1); | 743 | try testArgs(f128, 1e-1); |
| 739 | try testArgs(f128, 1.0); | 744 | try testArgs(f128, 1e0); |
| 740 | try testArgs(f128, 10.0); | 745 | try testArgs(f128, 1e1); |
| 741 | try testArgs(f128, fmax(f128)); | 746 | try testArgs(f128, fmax(f128)); |
| 742 | try testArgs(f128, inf(f128)); | 747 | try testArgs(f128, inf(f128)); |
| 743 | try testArgs(f128, nan(f128)); | 748 | try testArgs(f128, nan(f128)); |
| ... | @@ -1623,6 +1628,5493 @@ fn unary(comptime op: anytype, comptime opts: struct { strict: bool = false }) t | ... | @@ -1623,6 +1628,5493 @@ fn unary(comptime op: anytype, comptime opts: struct { strict: bool = false }) t |
| 1623 | }; | 1628 | }; |
| 1624 | } | 1629 | } |
| 1625 | 1630 | ||
| 1631 | fn cast(comptime op: anytype, comptime opts: struct { strict: bool = false }) type { | ||
| 1632 | return struct { | ||
| 1633 | // noinline so that `mem_arg` is on the stack | ||
| 1634 | noinline fn testArgKinds( | ||
| 1635 | _: Gpr, | ||
| 1636 | _: Gpr, | ||
| 1637 | _: Gpr, | ||
| 1638 | _: Gpr, | ||
| 1639 | _: Gpr, | ||
| 1640 | _: Gpr, | ||
| 1641 | _: Gpr, | ||
| 1642 | _: Gpr, | ||
| 1643 | _: Sse, | ||
| 1644 | _: Sse, | ||
| 1645 | _: Sse, | ||
| 1646 | _: Sse, | ||
| 1647 | _: Sse, | ||
| 1648 | _: Sse, | ||
| 1649 | _: Sse, | ||
| 1650 | _: Sse, | ||
| 1651 | comptime Result: type, | ||
| 1652 | comptime Type: type, | ||
| 1653 | comptime imm_arg: Type, | ||
| 1654 | mem_arg: Type, | ||
| 1655 | ) !void { | ||
| 1656 | const expected = comptime op(Result, Type, imm_arg, imm_arg); | ||
| 1657 | var reg_arg = mem_arg; | ||
| 1658 | _ = .{&reg_arg}; | ||
| 1659 | try checkExpected(expected, op(Result, Type, reg_arg, imm_arg), opts.strict); | ||
| 1660 | try checkExpected(expected, op(Result, Type, mem_arg, imm_arg), opts.strict); | ||
| 1661 | try checkExpected(expected, op(Result, Type, imm_arg, imm_arg), opts.strict); | ||
| 1662 | } | ||
| 1663 | // noinline for a more helpful stack trace | ||
| 1664 | noinline fn testArgs(comptime Result: type, comptime Type: type, comptime imm_arg: Type) !void { | ||
| 1665 | try testArgKinds( | ||
| 1666 | undefined, | ||
| 1667 | undefined, | ||
| 1668 | undefined, | ||
| 1669 | undefined, | ||
| 1670 | undefined, | ||
| 1671 | undefined, | ||
| 1672 | undefined, | ||
| 1673 | undefined, | ||
| 1674 | undefined, | ||
| 1675 | undefined, | ||
| 1676 | undefined, | ||
| 1677 | undefined, | ||
| 1678 | undefined, | ||
| 1679 | undefined, | ||
| 1680 | undefined, | ||
| 1681 | undefined, | ||
| 1682 | Result, | ||
| 1683 | Type, | ||
| 1684 | imm_arg, | ||
| 1685 | imm_arg, | ||
| 1686 | ); | ||
| 1687 | } | ||
| 1688 | fn testSameSignednessInts() !void { | ||
| 1689 | try testArgs(i8, i1, -1); | ||
| 1690 | try testArgs(i8, i1, 0); | ||
| 1691 | try testArgs(i16, i1, -1); | ||
| 1692 | try testArgs(i16, i1, 0); | ||
| 1693 | try testArgs(i32, i1, -1); | ||
| 1694 | try testArgs(i32, i1, 0); | ||
| 1695 | try testArgs(i64, i1, -1); | ||
| 1696 | try testArgs(i64, i1, 0); | ||
| 1697 | try testArgs(i128, i1, -1); | ||
| 1698 | try testArgs(i128, i1, 0); | ||
| 1699 | try testArgs(i256, i1, -1); | ||
| 1700 | try testArgs(i256, i1, 0); | ||
| 1701 | try testArgs(i512, i1, -1); | ||
| 1702 | try testArgs(i512, i1, 0); | ||
| 1703 | try testArgs(i1024, i1, -1); | ||
| 1704 | try testArgs(i1024, i1, 0); | ||
| 1705 | try testArgs(u8, u1, 0); | ||
| 1706 | try testArgs(u8, u1, 1 << 0); | ||
| 1707 | try testArgs(u16, u1, 0); | ||
| 1708 | try testArgs(u16, u1, 1 << 0); | ||
| 1709 | try testArgs(u32, u1, 0); | ||
| 1710 | try testArgs(u32, u1, 1 << 0); | ||
| 1711 | try testArgs(u64, u1, 0); | ||
| 1712 | try testArgs(u64, u1, 1 << 0); | ||
| 1713 | try testArgs(u128, u1, 0); | ||
| 1714 | try testArgs(u128, u1, 1 << 0); | ||
| 1715 | try testArgs(u256, u1, 0); | ||
| 1716 | try testArgs(u256, u1, 1 << 0); | ||
| 1717 | try testArgs(u512, u1, 0); | ||
| 1718 | try testArgs(u512, u1, 1 << 0); | ||
| 1719 | try testArgs(u1024, u1, 0); | ||
| 1720 | try testArgs(u1024, u1, 1 << 0); | ||
| 1721 | |||
| 1722 | try testArgs(i8, i2, -1 << 1); | ||
| 1723 | try testArgs(i8, i2, -1); | ||
| 1724 | try testArgs(i8, i2, 0); | ||
| 1725 | try testArgs(i16, i2, -1 << 1); | ||
| 1726 | try testArgs(i16, i2, -1); | ||
| 1727 | try testArgs(i16, i2, 0); | ||
| 1728 | try testArgs(i32, i2, -1 << 1); | ||
| 1729 | try testArgs(i32, i2, -1); | ||
| 1730 | try testArgs(i32, i2, 0); | ||
| 1731 | try testArgs(i64, i2, -1 << 1); | ||
| 1732 | try testArgs(i64, i2, -1); | ||
| 1733 | try testArgs(i64, i2, 0); | ||
| 1734 | try testArgs(i128, i2, -1 << 1); | ||
| 1735 | try testArgs(i128, i2, -1); | ||
| 1736 | try testArgs(i128, i2, 0); | ||
| 1737 | try testArgs(i256, i2, -1 << 1); | ||
| 1738 | try testArgs(i256, i2, -1); | ||
| 1739 | try testArgs(i256, i2, 0); | ||
| 1740 | try testArgs(i512, i2, -1 << 1); | ||
| 1741 | try testArgs(i512, i2, -1); | ||
| 1742 | try testArgs(i512, i2, 0); | ||
| 1743 | try testArgs(i1024, i2, -1 << 1); | ||
| 1744 | try testArgs(i1024, i2, -1); | ||
| 1745 | try testArgs(i1024, i2, 0); | ||
| 1746 | try testArgs(u8, u2, 0); | ||
| 1747 | try testArgs(u8, u2, 1 << 0); | ||
| 1748 | try testArgs(u8, u2, 1 << 1); | ||
| 1749 | try testArgs(u16, u2, 0); | ||
| 1750 | try testArgs(u16, u2, 1 << 0); | ||
| 1751 | try testArgs(u16, u2, 1 << 1); | ||
| 1752 | try testArgs(u32, u2, 0); | ||
| 1753 | try testArgs(u32, u2, 1 << 0); | ||
| 1754 | try testArgs(u32, u2, 1 << 1); | ||
| 1755 | try testArgs(u64, u2, 0); | ||
| 1756 | try testArgs(u64, u2, 1 << 0); | ||
| 1757 | try testArgs(u64, u2, 1 << 1); | ||
| 1758 | try testArgs(u128, u2, 0); | ||
| 1759 | try testArgs(u128, u2, 1 << 0); | ||
| 1760 | try testArgs(u128, u2, 1 << 1); | ||
| 1761 | try testArgs(u256, u2, 0); | ||
| 1762 | try testArgs(u256, u2, 1 << 0); | ||
| 1763 | try testArgs(u256, u2, 1 << 1); | ||
| 1764 | try testArgs(u512, u2, 0); | ||
| 1765 | try testArgs(u512, u2, 1 << 0); | ||
| 1766 | try testArgs(u512, u2, 1 << 1); | ||
| 1767 | try testArgs(u1024, u2, 0); | ||
| 1768 | try testArgs(u1024, u2, 1 << 0); | ||
| 1769 | try testArgs(u1024, u2, 1 << 1); | ||
| 1770 | |||
| 1771 | try testArgs(i8, i3, -1 << 2); | ||
| 1772 | try testArgs(i8, i3, -1); | ||
| 1773 | try testArgs(i8, i3, 0); | ||
| 1774 | try testArgs(i16, i3, -1 << 2); | ||
| 1775 | try testArgs(i16, i3, -1); | ||
| 1776 | try testArgs(i16, i3, 0); | ||
| 1777 | try testArgs(i32, i3, -1 << 2); | ||
| 1778 | try testArgs(i32, i3, -1); | ||
| 1779 | try testArgs(i32, i3, 0); | ||
| 1780 | try testArgs(i64, i3, -1 << 2); | ||
| 1781 | try testArgs(i64, i3, -1); | ||
| 1782 | try testArgs(i64, i3, 0); | ||
| 1783 | try testArgs(i128, i3, -1 << 2); | ||
| 1784 | try testArgs(i128, i3, -1); | ||
| 1785 | try testArgs(i128, i3, 0); | ||
| 1786 | try testArgs(i256, i3, -1 << 2); | ||
| 1787 | try testArgs(i256, i3, -1); | ||
| 1788 | try testArgs(i256, i3, 0); | ||
| 1789 | try testArgs(i512, i3, -1 << 2); | ||
| 1790 | try testArgs(i512, i3, -1); | ||
| 1791 | try testArgs(i512, i3, 0); | ||
| 1792 | try testArgs(i1024, i3, -1 << 2); | ||
| 1793 | try testArgs(i1024, i3, -1); | ||
| 1794 | try testArgs(i1024, i3, 0); | ||
| 1795 | try testArgs(u8, u3, 0); | ||
| 1796 | try testArgs(u8, u3, 1 << 0); | ||
| 1797 | try testArgs(u8, u3, 1 << 2); | ||
| 1798 | try testArgs(u16, u3, 0); | ||
| 1799 | try testArgs(u16, u3, 1 << 0); | ||
| 1800 | try testArgs(u16, u3, 1 << 2); | ||
| 1801 | try testArgs(u32, u3, 0); | ||
| 1802 | try testArgs(u32, u3, 1 << 0); | ||
| 1803 | try testArgs(u32, u3, 1 << 2); | ||
| 1804 | try testArgs(u64, u3, 0); | ||
| 1805 | try testArgs(u64, u3, 1 << 0); | ||
| 1806 | try testArgs(u64, u3, 1 << 2); | ||
| 1807 | try testArgs(u128, u3, 0); | ||
| 1808 | try testArgs(u128, u3, 1 << 0); | ||
| 1809 | try testArgs(u128, u3, 1 << 2); | ||
| 1810 | try testArgs(u256, u3, 0); | ||
| 1811 | try testArgs(u256, u3, 1 << 0); | ||
| 1812 | try testArgs(u256, u3, 1 << 2); | ||
| 1813 | try testArgs(u512, u3, 0); | ||
| 1814 | try testArgs(u512, u3, 1 << 0); | ||
| 1815 | try testArgs(u512, u3, 1 << 2); | ||
| 1816 | try testArgs(u1024, u3, 0); | ||
| 1817 | try testArgs(u1024, u3, 1 << 0); | ||
| 1818 | try testArgs(u1024, u3, 1 << 2); | ||
| 1819 | |||
| 1820 | try testArgs(i8, i4, -1 << 3); | ||
| 1821 | try testArgs(i8, i4, -1); | ||
| 1822 | try testArgs(i8, i4, 0); | ||
| 1823 | try testArgs(i16, i4, -1 << 3); | ||
| 1824 | try testArgs(i16, i4, -1); | ||
| 1825 | try testArgs(i16, i4, 0); | ||
| 1826 | try testArgs(i32, i4, -1 << 3); | ||
| 1827 | try testArgs(i32, i4, -1); | ||
| 1828 | try testArgs(i32, i4, 0); | ||
| 1829 | try testArgs(i64, i4, -1 << 3); | ||
| 1830 | try testArgs(i64, i4, -1); | ||
| 1831 | try testArgs(i64, i4, 0); | ||
| 1832 | try testArgs(i128, i4, -1 << 3); | ||
| 1833 | try testArgs(i128, i4, -1); | ||
| 1834 | try testArgs(i128, i4, 0); | ||
| 1835 | try testArgs(i256, i4, -1 << 3); | ||
| 1836 | try testArgs(i256, i4, -1); | ||
| 1837 | try testArgs(i256, i4, 0); | ||
| 1838 | try testArgs(i512, i4, -1 << 3); | ||
| 1839 | try testArgs(i512, i4, -1); | ||
| 1840 | try testArgs(i512, i4, 0); | ||
| 1841 | try testArgs(i1024, i4, -1 << 3); | ||
| 1842 | try testArgs(i1024, i4, -1); | ||
| 1843 | try testArgs(i1024, i4, 0); | ||
| 1844 | try testArgs(u8, u4, 0); | ||
| 1845 | try testArgs(u8, u4, 1 << 0); | ||
| 1846 | try testArgs(u8, u4, 1 << 3); | ||
| 1847 | try testArgs(u16, u4, 0); | ||
| 1848 | try testArgs(u16, u4, 1 << 0); | ||
| 1849 | try testArgs(u16, u4, 1 << 3); | ||
| 1850 | try testArgs(u32, u4, 0); | ||
| 1851 | try testArgs(u32, u4, 1 << 0); | ||
| 1852 | try testArgs(u32, u4, 1 << 3); | ||
| 1853 | try testArgs(u64, u4, 0); | ||
| 1854 | try testArgs(u64, u4, 1 << 0); | ||
| 1855 | try testArgs(u64, u4, 1 << 3); | ||
| 1856 | try testArgs(u128, u4, 0); | ||
| 1857 | try testArgs(u128, u4, 1 << 0); | ||
| 1858 | try testArgs(u128, u4, 1 << 3); | ||
| 1859 | try testArgs(u256, u4, 0); | ||
| 1860 | try testArgs(u256, u4, 1 << 0); | ||
| 1861 | try testArgs(u256, u4, 1 << 3); | ||
| 1862 | try testArgs(u512, u4, 0); | ||
| 1863 | try testArgs(u512, u4, 1 << 0); | ||
| 1864 | try testArgs(u512, u4, 1 << 3); | ||
| 1865 | try testArgs(u1024, u4, 0); | ||
| 1866 | try testArgs(u1024, u4, 1 << 0); | ||
| 1867 | try testArgs(u1024, u4, 1 << 3); | ||
| 1868 | |||
| 1869 | try testArgs(i8, i5, -1 << 4); | ||
| 1870 | try testArgs(i8, i5, -1); | ||
| 1871 | try testArgs(i8, i5, 0); | ||
| 1872 | try testArgs(i16, i5, -1 << 4); | ||
| 1873 | try testArgs(i16, i5, -1); | ||
| 1874 | try testArgs(i16, i5, 0); | ||
| 1875 | try testArgs(i32, i5, -1 << 4); | ||
| 1876 | try testArgs(i32, i5, -1); | ||
| 1877 | try testArgs(i32, i5, 0); | ||
| 1878 | try testArgs(i64, i5, -1 << 4); | ||
| 1879 | try testArgs(i64, i5, -1); | ||
| 1880 | try testArgs(i64, i5, 0); | ||
| 1881 | try testArgs(i128, i5, -1 << 4); | ||
| 1882 | try testArgs(i128, i5, -1); | ||
| 1883 | try testArgs(i128, i5, 0); | ||
| 1884 | try testArgs(i256, i5, -1 << 4); | ||
| 1885 | try testArgs(i256, i5, -1); | ||
| 1886 | try testArgs(i256, i5, 0); | ||
| 1887 | try testArgs(i512, i5, -1 << 4); | ||
| 1888 | try testArgs(i512, i5, -1); | ||
| 1889 | try testArgs(i512, i5, 0); | ||
| 1890 | try testArgs(i1024, i5, -1 << 4); | ||
| 1891 | try testArgs(i1024, i5, -1); | ||
| 1892 | try testArgs(i1024, i5, 0); | ||
| 1893 | try testArgs(u8, u5, 0); | ||
| 1894 | try testArgs(u8, u5, 1 << 0); | ||
| 1895 | try testArgs(u8, u5, 1 << 4); | ||
| 1896 | try testArgs(u16, u5, 0); | ||
| 1897 | try testArgs(u16, u5, 1 << 0); | ||
| 1898 | try testArgs(u16, u5, 1 << 4); | ||
| 1899 | try testArgs(u32, u5, 0); | ||
| 1900 | try testArgs(u32, u5, 1 << 0); | ||
| 1901 | try testArgs(u32, u5, 1 << 4); | ||
| 1902 | try testArgs(u64, u5, 0); | ||
| 1903 | try testArgs(u64, u5, 1 << 0); | ||
| 1904 | try testArgs(u64, u5, 1 << 4); | ||
| 1905 | try testArgs(u128, u5, 0); | ||
| 1906 | try testArgs(u128, u5, 1 << 0); | ||
| 1907 | try testArgs(u128, u5, 1 << 4); | ||
| 1908 | try testArgs(u256, u5, 0); | ||
| 1909 | try testArgs(u256, u5, 1 << 0); | ||
| 1910 | try testArgs(u256, u5, 1 << 4); | ||
| 1911 | try testArgs(u512, u5, 0); | ||
| 1912 | try testArgs(u512, u5, 1 << 0); | ||
| 1913 | try testArgs(u512, u5, 1 << 4); | ||
| 1914 | try testArgs(u1024, u5, 0); | ||
| 1915 | try testArgs(u1024, u5, 1 << 0); | ||
| 1916 | try testArgs(u1024, u5, 1 << 4); | ||
| 1917 | |||
| 1918 | try testArgs(i8, i7, -1 << 6); | ||
| 1919 | try testArgs(i8, i7, -1); | ||
| 1920 | try testArgs(i8, i7, 0); | ||
| 1921 | try testArgs(i16, i7, -1 << 6); | ||
| 1922 | try testArgs(i16, i7, -1); | ||
| 1923 | try testArgs(i16, i7, 0); | ||
| 1924 | try testArgs(i32, i7, -1 << 6); | ||
| 1925 | try testArgs(i32, i7, -1); | ||
| 1926 | try testArgs(i32, i7, 0); | ||
| 1927 | try testArgs(i64, i7, -1 << 6); | ||
| 1928 | try testArgs(i64, i7, -1); | ||
| 1929 | try testArgs(i64, i7, 0); | ||
| 1930 | try testArgs(i128, i7, -1 << 6); | ||
| 1931 | try testArgs(i128, i7, -1); | ||
| 1932 | try testArgs(i128, i7, 0); | ||
| 1933 | try testArgs(i256, i7, -1 << 6); | ||
| 1934 | try testArgs(i256, i7, -1); | ||
| 1935 | try testArgs(i256, i7, 0); | ||
| 1936 | try testArgs(i512, i7, -1 << 6); | ||
| 1937 | try testArgs(i512, i7, -1); | ||
| 1938 | try testArgs(i512, i7, 0); | ||
| 1939 | try testArgs(i1024, i7, -1 << 6); | ||
| 1940 | try testArgs(i1024, i7, -1); | ||
| 1941 | try testArgs(i1024, i7, 0); | ||
| 1942 | try testArgs(u8, u7, 0); | ||
| 1943 | try testArgs(u8, u7, 1 << 0); | ||
| 1944 | try testArgs(u8, u7, 1 << 6); | ||
| 1945 | try testArgs(u16, u7, 0); | ||
| 1946 | try testArgs(u16, u7, 1 << 0); | ||
| 1947 | try testArgs(u16, u7, 1 << 6); | ||
| 1948 | try testArgs(u32, u7, 0); | ||
| 1949 | try testArgs(u32, u7, 1 << 0); | ||
| 1950 | try testArgs(u32, u7, 1 << 6); | ||
| 1951 | try testArgs(u64, u7, 0); | ||
| 1952 | try testArgs(u64, u7, 1 << 0); | ||
| 1953 | try testArgs(u64, u7, 1 << 6); | ||
| 1954 | try testArgs(u128, u7, 0); | ||
| 1955 | try testArgs(u128, u7, 1 << 0); | ||
| 1956 | try testArgs(u128, u7, 1 << 6); | ||
| 1957 | try testArgs(u256, u7, 0); | ||
| 1958 | try testArgs(u256, u7, 1 << 0); | ||
| 1959 | try testArgs(u256, u7, 1 << 6); | ||
| 1960 | try testArgs(u512, u7, 0); | ||
| 1961 | try testArgs(u512, u7, 1 << 0); | ||
| 1962 | try testArgs(u512, u7, 1 << 6); | ||
| 1963 | try testArgs(u1024, u7, 0); | ||
| 1964 | try testArgs(u1024, u7, 1 << 0); | ||
| 1965 | try testArgs(u1024, u7, 1 << 6); | ||
| 1966 | |||
| 1967 | try testArgs(i8, i8, -1 << 7); | ||
| 1968 | try testArgs(i8, i8, -1); | ||
| 1969 | try testArgs(i8, i8, 0); | ||
| 1970 | try testArgs(i16, i8, -1 << 7); | ||
| 1971 | try testArgs(i16, i8, -1); | ||
| 1972 | try testArgs(i16, i8, 0); | ||
| 1973 | try testArgs(i32, i8, -1 << 7); | ||
| 1974 | try testArgs(i32, i8, -1); | ||
| 1975 | try testArgs(i32, i8, 0); | ||
| 1976 | try testArgs(i64, i8, -1 << 7); | ||
| 1977 | try testArgs(i64, i8, -1); | ||
| 1978 | try testArgs(i64, i8, 0); | ||
| 1979 | try testArgs(i128, i8, -1 << 7); | ||
| 1980 | try testArgs(i128, i8, -1); | ||
| 1981 | try testArgs(i128, i8, 0); | ||
| 1982 | try testArgs(i256, i8, -1 << 7); | ||
| 1983 | try testArgs(i256, i8, -1); | ||
| 1984 | try testArgs(i256, i8, 0); | ||
| 1985 | try testArgs(i512, i8, -1 << 7); | ||
| 1986 | try testArgs(i512, i8, -1); | ||
| 1987 | try testArgs(i512, i8, 0); | ||
| 1988 | try testArgs(i1024, i8, -1 << 7); | ||
| 1989 | try testArgs(i1024, i8, -1); | ||
| 1990 | try testArgs(i1024, i8, 0); | ||
| 1991 | try testArgs(u8, u8, 0); | ||
| 1992 | try testArgs(u8, u8, 1 << 0); | ||
| 1993 | try testArgs(u8, u8, 1 << 7); | ||
| 1994 | try testArgs(u16, u8, 0); | ||
| 1995 | try testArgs(u16, u8, 1 << 0); | ||
| 1996 | try testArgs(u16, u8, 1 << 7); | ||
| 1997 | try testArgs(u32, u8, 0); | ||
| 1998 | try testArgs(u32, u8, 1 << 0); | ||
| 1999 | try testArgs(u32, u8, 1 << 7); | ||
| 2000 | try testArgs(u64, u8, 0); | ||
| 2001 | try testArgs(u64, u8, 1 << 0); | ||
| 2002 | try testArgs(u64, u8, 1 << 7); | ||
| 2003 | try testArgs(u128, u8, 0); | ||
| 2004 | try testArgs(u128, u8, 1 << 0); | ||
| 2005 | try testArgs(u128, u8, 1 << 7); | ||
| 2006 | try testArgs(u256, u8, 0); | ||
| 2007 | try testArgs(u256, u8, 1 << 0); | ||
| 2008 | try testArgs(u256, u8, 1 << 7); | ||
| 2009 | try testArgs(u512, u8, 0); | ||
| 2010 | try testArgs(u512, u8, 1 << 0); | ||
| 2011 | try testArgs(u512, u8, 1 << 7); | ||
| 2012 | try testArgs(u1024, u8, 0); | ||
| 2013 | try testArgs(u1024, u8, 1 << 0); | ||
| 2014 | try testArgs(u1024, u8, 1 << 7); | ||
| 2015 | |||
| 2016 | try testArgs(i8, i9, -1 << 8); | ||
| 2017 | try testArgs(i8, i9, -1); | ||
| 2018 | try testArgs(i8, i9, 0); | ||
| 2019 | try testArgs(i16, i9, -1 << 8); | ||
| 2020 | try testArgs(i16, i9, -1); | ||
| 2021 | try testArgs(i16, i9, 0); | ||
| 2022 | try testArgs(i32, i9, -1 << 8); | ||
| 2023 | try testArgs(i32, i9, -1); | ||
| 2024 | try testArgs(i32, i9, 0); | ||
| 2025 | try testArgs(i64, i9, -1 << 8); | ||
| 2026 | try testArgs(i64, i9, -1); | ||
| 2027 | try testArgs(i64, i9, 0); | ||
| 2028 | try testArgs(i128, i9, -1 << 8); | ||
| 2029 | try testArgs(i128, i9, -1); | ||
| 2030 | try testArgs(i128, i9, 0); | ||
| 2031 | try testArgs(i256, i9, -1 << 8); | ||
| 2032 | try testArgs(i256, i9, -1); | ||
| 2033 | try testArgs(i256, i9, 0); | ||
| 2034 | try testArgs(i512, i9, -1 << 8); | ||
| 2035 | try testArgs(i512, i9, -1); | ||
| 2036 | try testArgs(i512, i9, 0); | ||
| 2037 | try testArgs(i1024, i9, -1 << 8); | ||
| 2038 | try testArgs(i1024, i9, -1); | ||
| 2039 | try testArgs(i1024, i9, 0); | ||
| 2040 | try testArgs(u8, u9, 0); | ||
| 2041 | try testArgs(u8, u9, 1 << 0); | ||
| 2042 | try testArgs(u8, u9, 1 << 8); | ||
| 2043 | try testArgs(u16, u9, 0); | ||
| 2044 | try testArgs(u16, u9, 1 << 0); | ||
| 2045 | try testArgs(u16, u9, 1 << 8); | ||
| 2046 | try testArgs(u32, u9, 0); | ||
| 2047 | try testArgs(u32, u9, 1 << 0); | ||
| 2048 | try testArgs(u32, u9, 1 << 8); | ||
| 2049 | try testArgs(u64, u9, 0); | ||
| 2050 | try testArgs(u64, u9, 1 << 0); | ||
| 2051 | try testArgs(u64, u9, 1 << 8); | ||
| 2052 | try testArgs(u128, u9, 0); | ||
| 2053 | try testArgs(u128, u9, 1 << 0); | ||
| 2054 | try testArgs(u128, u9, 1 << 8); | ||
| 2055 | try testArgs(u256, u9, 0); | ||
| 2056 | try testArgs(u256, u9, 1 << 0); | ||
| 2057 | try testArgs(u256, u9, 1 << 8); | ||
| 2058 | try testArgs(u512, u9, 0); | ||
| 2059 | try testArgs(u512, u9, 1 << 0); | ||
| 2060 | try testArgs(u512, u9, 1 << 8); | ||
| 2061 | try testArgs(u1024, u9, 0); | ||
| 2062 | try testArgs(u1024, u9, 1 << 0); | ||
| 2063 | try testArgs(u1024, u9, 1 << 8); | ||
| 2064 | |||
| 2065 | try testArgs(i8, i15, -1 << 14); | ||
| 2066 | try testArgs(i8, i15, -1); | ||
| 2067 | try testArgs(i8, i15, 0); | ||
| 2068 | try testArgs(i16, i15, -1 << 14); | ||
| 2069 | try testArgs(i16, i15, -1); | ||
| 2070 | try testArgs(i16, i15, 0); | ||
| 2071 | try testArgs(i32, i15, -1 << 14); | ||
| 2072 | try testArgs(i32, i15, -1); | ||
| 2073 | try testArgs(i32, i15, 0); | ||
| 2074 | try testArgs(i64, i15, -1 << 14); | ||
| 2075 | try testArgs(i64, i15, -1); | ||
| 2076 | try testArgs(i64, i15, 0); | ||
| 2077 | try testArgs(i128, i15, -1 << 14); | ||
| 2078 | try testArgs(i128, i15, -1); | ||
| 2079 | try testArgs(i128, i15, 0); | ||
| 2080 | try testArgs(i256, i15, -1 << 14); | ||
| 2081 | try testArgs(i256, i15, -1); | ||
| 2082 | try testArgs(i256, i15, 0); | ||
| 2083 | try testArgs(i512, i15, -1 << 14); | ||
| 2084 | try testArgs(i512, i15, -1); | ||
| 2085 | try testArgs(i512, i15, 0); | ||
| 2086 | try testArgs(i1024, i15, -1 << 14); | ||
| 2087 | try testArgs(i1024, i15, -1); | ||
| 2088 | try testArgs(i1024, i15, 0); | ||
| 2089 | try testArgs(u8, u15, 0); | ||
| 2090 | try testArgs(u8, u15, 1 << 0); | ||
| 2091 | try testArgs(u8, u15, 1 << 14); | ||
| 2092 | try testArgs(u16, u15, 0); | ||
| 2093 | try testArgs(u16, u15, 1 << 0); | ||
| 2094 | try testArgs(u16, u15, 1 << 14); | ||
| 2095 | try testArgs(u32, u15, 0); | ||
| 2096 | try testArgs(u32, u15, 1 << 0); | ||
| 2097 | try testArgs(u32, u15, 1 << 14); | ||
| 2098 | try testArgs(u64, u15, 0); | ||
| 2099 | try testArgs(u64, u15, 1 << 0); | ||
| 2100 | try testArgs(u64, u15, 1 << 14); | ||
| 2101 | try testArgs(u128, u15, 0); | ||
| 2102 | try testArgs(u128, u15, 1 << 0); | ||
| 2103 | try testArgs(u128, u15, 1 << 14); | ||
| 2104 | try testArgs(u256, u15, 0); | ||
| 2105 | try testArgs(u256, u15, 1 << 0); | ||
| 2106 | try testArgs(u256, u15, 1 << 14); | ||
| 2107 | try testArgs(u512, u15, 0); | ||
| 2108 | try testArgs(u512, u15, 1 << 0); | ||
| 2109 | try testArgs(u512, u15, 1 << 14); | ||
| 2110 | try testArgs(u1024, u15, 0); | ||
| 2111 | try testArgs(u1024, u15, 1 << 0); | ||
| 2112 | try testArgs(u1024, u15, 1 << 14); | ||
| 2113 | |||
| 2114 | try testArgs(i8, i16, -1 << 15); | ||
| 2115 | try testArgs(i8, i16, -1); | ||
| 2116 | try testArgs(i8, i16, 0); | ||
| 2117 | try testArgs(i16, i16, -1 << 15); | ||
| 2118 | try testArgs(i16, i16, -1); | ||
| 2119 | try testArgs(i16, i16, 0); | ||
| 2120 | try testArgs(i32, i16, -1 << 15); | ||
| 2121 | try testArgs(i32, i16, -1); | ||
| 2122 | try testArgs(i32, i16, 0); | ||
| 2123 | try testArgs(i64, i16, -1 << 15); | ||
| 2124 | try testArgs(i64, i16, -1); | ||
| 2125 | try testArgs(i64, i16, 0); | ||
| 2126 | try testArgs(i128, i16, -1 << 15); | ||
| 2127 | try testArgs(i128, i16, -1); | ||
| 2128 | try testArgs(i128, i16, 0); | ||
| 2129 | try testArgs(i256, i16, -1 << 15); | ||
| 2130 | try testArgs(i256, i16, -1); | ||
| 2131 | try testArgs(i256, i16, 0); | ||
| 2132 | try testArgs(i512, i16, -1 << 15); | ||
| 2133 | try testArgs(i512, i16, -1); | ||
| 2134 | try testArgs(i512, i16, 0); | ||
| 2135 | try testArgs(i1024, i16, -1 << 15); | ||
| 2136 | try testArgs(i1024, i16, -1); | ||
| 2137 | try testArgs(i1024, i16, 0); | ||
| 2138 | try testArgs(u8, u16, 0); | ||
| 2139 | try testArgs(u8, u16, 1 << 0); | ||
| 2140 | try testArgs(u8, u16, 1 << 15); | ||
| 2141 | try testArgs(u16, u16, 0); | ||
| 2142 | try testArgs(u16, u16, 1 << 0); | ||
| 2143 | try testArgs(u16, u16, 1 << 15); | ||
| 2144 | try testArgs(u32, u16, 0); | ||
| 2145 | try testArgs(u32, u16, 1 << 0); | ||
| 2146 | try testArgs(u32, u16, 1 << 15); | ||
| 2147 | try testArgs(u64, u16, 0); | ||
| 2148 | try testArgs(u64, u16, 1 << 0); | ||
| 2149 | try testArgs(u64, u16, 1 << 15); | ||
| 2150 | try testArgs(u128, u16, 0); | ||
| 2151 | try testArgs(u128, u16, 1 << 0); | ||
| 2152 | try testArgs(u128, u16, 1 << 15); | ||
| 2153 | try testArgs(u256, u16, 0); | ||
| 2154 | try testArgs(u256, u16, 1 << 0); | ||
| 2155 | try testArgs(u256, u16, 1 << 15); | ||
| 2156 | try testArgs(u512, u16, 0); | ||
| 2157 | try testArgs(u512, u16, 1 << 0); | ||
| 2158 | try testArgs(u512, u16, 1 << 15); | ||
| 2159 | try testArgs(u1024, u16, 0); | ||
| 2160 | try testArgs(u1024, u16, 1 << 0); | ||
| 2161 | try testArgs(u1024, u16, 1 << 15); | ||
| 2162 | |||
| 2163 | try testArgs(i8, i17, -1 << 16); | ||
| 2164 | try testArgs(i8, i17, -1); | ||
| 2165 | try testArgs(i8, i17, 0); | ||
| 2166 | try testArgs(i16, i17, -1 << 16); | ||
| 2167 | try testArgs(i16, i17, -1); | ||
| 2168 | try testArgs(i16, i17, 0); | ||
| 2169 | try testArgs(i32, i17, -1 << 16); | ||
| 2170 | try testArgs(i32, i17, -1); | ||
| 2171 | try testArgs(i32, i17, 0); | ||
| 2172 | try testArgs(i64, i17, -1 << 16); | ||
| 2173 | try testArgs(i64, i17, -1); | ||
| 2174 | try testArgs(i64, i17, 0); | ||
| 2175 | try testArgs(i128, i17, -1 << 16); | ||
| 2176 | try testArgs(i128, i17, -1); | ||
| 2177 | try testArgs(i128, i17, 0); | ||
| 2178 | try testArgs(i256, i17, -1 << 16); | ||
| 2179 | try testArgs(i256, i17, -1); | ||
| 2180 | try testArgs(i256, i17, 0); | ||
| 2181 | try testArgs(i512, i17, -1 << 16); | ||
| 2182 | try testArgs(i512, i17, -1); | ||
| 2183 | try testArgs(i512, i17, 0); | ||
| 2184 | try testArgs(i1024, i17, -1 << 16); | ||
| 2185 | try testArgs(i1024, i17, -1); | ||
| 2186 | try testArgs(i1024, i17, 0); | ||
| 2187 | try testArgs(u8, u17, 0); | ||
| 2188 | try testArgs(u8, u17, 1 << 0); | ||
| 2189 | try testArgs(u8, u17, 1 << 16); | ||
| 2190 | try testArgs(u16, u17, 0); | ||
| 2191 | try testArgs(u16, u17, 1 << 0); | ||
| 2192 | try testArgs(u16, u17, 1 << 16); | ||
| 2193 | try testArgs(u32, u17, 0); | ||
| 2194 | try testArgs(u32, u17, 1 << 0); | ||
| 2195 | try testArgs(u32, u17, 1 << 16); | ||
| 2196 | try testArgs(u64, u17, 0); | ||
| 2197 | try testArgs(u64, u17, 1 << 0); | ||
| 2198 | try testArgs(u64, u17, 1 << 16); | ||
| 2199 | try testArgs(u128, u17, 0); | ||
| 2200 | try testArgs(u128, u17, 1 << 0); | ||
| 2201 | try testArgs(u128, u17, 1 << 16); | ||
| 2202 | try testArgs(u256, u17, 0); | ||
| 2203 | try testArgs(u256, u17, 1 << 0); | ||
| 2204 | try testArgs(u256, u17, 1 << 16); | ||
| 2205 | try testArgs(u512, u17, 0); | ||
| 2206 | try testArgs(u512, u17, 1 << 0); | ||
| 2207 | try testArgs(u512, u17, 1 << 16); | ||
| 2208 | try testArgs(u1024, u17, 0); | ||
| 2209 | try testArgs(u1024, u17, 1 << 0); | ||
| 2210 | try testArgs(u1024, u17, 1 << 16); | ||
| 2211 | |||
| 2212 | try testArgs(i8, i31, -1 << 30); | ||
| 2213 | try testArgs(i8, i31, -1); | ||
| 2214 | try testArgs(i8, i31, 0); | ||
| 2215 | try testArgs(i16, i31, -1 << 30); | ||
| 2216 | try testArgs(i16, i31, -1); | ||
| 2217 | try testArgs(i16, i31, 0); | ||
| 2218 | try testArgs(i32, i31, -1 << 30); | ||
| 2219 | try testArgs(i32, i31, -1); | ||
| 2220 | try testArgs(i32, i31, 0); | ||
| 2221 | try testArgs(i64, i31, -1 << 30); | ||
| 2222 | try testArgs(i64, i31, -1); | ||
| 2223 | try testArgs(i64, i31, 0); | ||
| 2224 | try testArgs(i128, i31, -1 << 30); | ||
| 2225 | try testArgs(i128, i31, -1); | ||
| 2226 | try testArgs(i128, i31, 0); | ||
| 2227 | try testArgs(i256, i31, -1 << 30); | ||
| 2228 | try testArgs(i256, i31, -1); | ||
| 2229 | try testArgs(i256, i31, 0); | ||
| 2230 | try testArgs(i512, i31, -1 << 30); | ||
| 2231 | try testArgs(i512, i31, -1); | ||
| 2232 | try testArgs(i512, i31, 0); | ||
| 2233 | try testArgs(i1024, i31, -1 << 30); | ||
| 2234 | try testArgs(i1024, i31, -1); | ||
| 2235 | try testArgs(i1024, i31, 0); | ||
| 2236 | try testArgs(u8, u31, 0); | ||
| 2237 | try testArgs(u8, u31, 1 << 0); | ||
| 2238 | try testArgs(u8, u31, 1 << 30); | ||
| 2239 | try testArgs(u16, u31, 0); | ||
| 2240 | try testArgs(u16, u31, 1 << 0); | ||
| 2241 | try testArgs(u16, u31, 1 << 30); | ||
| 2242 | try testArgs(u32, u31, 0); | ||
| 2243 | try testArgs(u32, u31, 1 << 0); | ||
| 2244 | try testArgs(u32, u31, 1 << 30); | ||
| 2245 | try testArgs(u64, u31, 0); | ||
| 2246 | try testArgs(u64, u31, 1 << 0); | ||
| 2247 | try testArgs(u64, u31, 1 << 30); | ||
| 2248 | try testArgs(u128, u31, 0); | ||
| 2249 | try testArgs(u128, u31, 1 << 0); | ||
| 2250 | try testArgs(u128, u31, 1 << 30); | ||
| 2251 | try testArgs(u256, u31, 0); | ||
| 2252 | try testArgs(u256, u31, 1 << 0); | ||
| 2253 | try testArgs(u256, u31, 1 << 30); | ||
| 2254 | try testArgs(u512, u31, 0); | ||
| 2255 | try testArgs(u512, u31, 1 << 0); | ||
| 2256 | try testArgs(u512, u31, 1 << 30); | ||
| 2257 | try testArgs(u1024, u31, 0); | ||
| 2258 | try testArgs(u1024, u31, 1 << 0); | ||
| 2259 | try testArgs(u1024, u31, 1 << 30); | ||
| 2260 | |||
| 2261 | try testArgs(i8, i32, -1 << 31); | ||
| 2262 | try testArgs(i8, i32, -1); | ||
| 2263 | try testArgs(i8, i32, 0); | ||
| 2264 | try testArgs(i16, i32, -1 << 31); | ||
| 2265 | try testArgs(i16, i32, -1); | ||
| 2266 | try testArgs(i16, i32, 0); | ||
| 2267 | try testArgs(i32, i32, -1 << 31); | ||
| 2268 | try testArgs(i32, i32, -1); | ||
| 2269 | try testArgs(i32, i32, 0); | ||
| 2270 | try testArgs(i64, i32, -1 << 31); | ||
| 2271 | try testArgs(i64, i32, -1); | ||
| 2272 | try testArgs(i64, i32, 0); | ||
| 2273 | try testArgs(i128, i32, -1 << 31); | ||
| 2274 | try testArgs(i128, i32, -1); | ||
| 2275 | try testArgs(i128, i32, 0); | ||
| 2276 | try testArgs(i256, i32, -1 << 31); | ||
| 2277 | try testArgs(i256, i32, -1); | ||
| 2278 | try testArgs(i256, i32, 0); | ||
| 2279 | try testArgs(i512, i32, -1 << 31); | ||
| 2280 | try testArgs(i512, i32, -1); | ||
| 2281 | try testArgs(i512, i32, 0); | ||
| 2282 | try testArgs(i1024, i32, -1 << 31); | ||
| 2283 | try testArgs(i1024, i32, -1); | ||
| 2284 | try testArgs(i1024, i32, 0); | ||
| 2285 | try testArgs(u8, u32, 0); | ||
| 2286 | try testArgs(u8, u32, 1 << 0); | ||
| 2287 | try testArgs(u8, u32, 1 << 31); | ||
| 2288 | try testArgs(u16, u32, 0); | ||
| 2289 | try testArgs(u16, u32, 1 << 0); | ||
| 2290 | try testArgs(u16, u32, 1 << 31); | ||
| 2291 | try testArgs(u32, u32, 0); | ||
| 2292 | try testArgs(u32, u32, 1 << 0); | ||
| 2293 | try testArgs(u32, u32, 1 << 31); | ||
| 2294 | try testArgs(u64, u32, 0); | ||
| 2295 | try testArgs(u64, u32, 1 << 0); | ||
| 2296 | try testArgs(u64, u32, 1 << 31); | ||
| 2297 | try testArgs(u128, u32, 0); | ||
| 2298 | try testArgs(u128, u32, 1 << 0); | ||
| 2299 | try testArgs(u128, u32, 1 << 31); | ||
| 2300 | try testArgs(u256, u32, 0); | ||
| 2301 | try testArgs(u256, u32, 1 << 0); | ||
| 2302 | try testArgs(u256, u32, 1 << 31); | ||
| 2303 | try testArgs(u512, u32, 0); | ||
| 2304 | try testArgs(u512, u32, 1 << 0); | ||
| 2305 | try testArgs(u512, u32, 1 << 31); | ||
| 2306 | try testArgs(u1024, u32, 0); | ||
| 2307 | try testArgs(u1024, u32, 1 << 0); | ||
| 2308 | try testArgs(u1024, u32, 1 << 31); | ||
| 2309 | |||
| 2310 | try testArgs(i8, i33, -1 << 32); | ||
| 2311 | try testArgs(i8, i33, -1); | ||
| 2312 | try testArgs(i8, i33, 0); | ||
| 2313 | try testArgs(i16, i33, -1 << 32); | ||
| 2314 | try testArgs(i16, i33, -1); | ||
| 2315 | try testArgs(i16, i33, 0); | ||
| 2316 | try testArgs(i32, i33, -1 << 32); | ||
| 2317 | try testArgs(i32, i33, -1); | ||
| 2318 | try testArgs(i32, i33, 0); | ||
| 2319 | try testArgs(i64, i33, -1 << 32); | ||
| 2320 | try testArgs(i64, i33, -1); | ||
| 2321 | try testArgs(i64, i33, 0); | ||
| 2322 | try testArgs(i128, i33, -1 << 32); | ||
| 2323 | try testArgs(i128, i33, -1); | ||
| 2324 | try testArgs(i128, i33, 0); | ||
| 2325 | try testArgs(i256, i33, -1 << 32); | ||
| 2326 | try testArgs(i256, i33, -1); | ||
| 2327 | try testArgs(i256, i33, 0); | ||
| 2328 | try testArgs(i512, i33, -1 << 32); | ||
| 2329 | try testArgs(i512, i33, -1); | ||
| 2330 | try testArgs(i512, i33, 0); | ||
| 2331 | try testArgs(i1024, i33, -1 << 32); | ||
| 2332 | try testArgs(i1024, i33, -1); | ||
| 2333 | try testArgs(i1024, i33, 0); | ||
| 2334 | try testArgs(u8, u33, 0); | ||
| 2335 | try testArgs(u8, u33, 1 << 0); | ||
| 2336 | try testArgs(u8, u33, 1 << 32); | ||
| 2337 | try testArgs(u16, u33, 0); | ||
| 2338 | try testArgs(u16, u33, 1 << 0); | ||
| 2339 | try testArgs(u16, u33, 1 << 32); | ||
| 2340 | try testArgs(u32, u33, 0); | ||
| 2341 | try testArgs(u32, u33, 1 << 0); | ||
| 2342 | try testArgs(u32, u33, 1 << 32); | ||
| 2343 | try testArgs(u64, u33, 0); | ||
| 2344 | try testArgs(u64, u33, 1 << 0); | ||
| 2345 | try testArgs(u64, u33, 1 << 32); | ||
| 2346 | try testArgs(u128, u33, 0); | ||
| 2347 | try testArgs(u128, u33, 1 << 0); | ||
| 2348 | try testArgs(u128, u33, 1 << 32); | ||
| 2349 | try testArgs(u256, u33, 0); | ||
| 2350 | try testArgs(u256, u33, 1 << 0); | ||
| 2351 | try testArgs(u256, u33, 1 << 32); | ||
| 2352 | try testArgs(u512, u33, 0); | ||
| 2353 | try testArgs(u512, u33, 1 << 0); | ||
| 2354 | try testArgs(u512, u33, 1 << 32); | ||
| 2355 | try testArgs(u1024, u33, 0); | ||
| 2356 | try testArgs(u1024, u33, 1 << 0); | ||
| 2357 | try testArgs(u1024, u33, 1 << 32); | ||
| 2358 | |||
| 2359 | try testArgs(i8, i63, -1 << 62); | ||
| 2360 | try testArgs(i8, i63, -1); | ||
| 2361 | try testArgs(i8, i63, 0); | ||
| 2362 | try testArgs(i16, i63, -1 << 62); | ||
| 2363 | try testArgs(i16, i63, -1); | ||
| 2364 | try testArgs(i16, i63, 0); | ||
| 2365 | try testArgs(i32, i63, -1 << 62); | ||
| 2366 | try testArgs(i32, i63, -1); | ||
| 2367 | try testArgs(i32, i63, 0); | ||
| 2368 | try testArgs(i64, i63, -1 << 62); | ||
| 2369 | try testArgs(i64, i63, -1); | ||
| 2370 | try testArgs(i64, i63, 0); | ||
| 2371 | try testArgs(i128, i63, -1 << 62); | ||
| 2372 | try testArgs(i128, i63, -1); | ||
| 2373 | try testArgs(i128, i63, 0); | ||
| 2374 | try testArgs(i256, i63, -1 << 62); | ||
| 2375 | try testArgs(i256, i63, -1); | ||
| 2376 | try testArgs(i256, i63, 0); | ||
| 2377 | try testArgs(i512, i63, -1 << 62); | ||
| 2378 | try testArgs(i512, i63, -1); | ||
| 2379 | try testArgs(i512, i63, 0); | ||
| 2380 | try testArgs(i1024, i63, -1 << 62); | ||
| 2381 | try testArgs(i1024, i63, -1); | ||
| 2382 | try testArgs(i1024, i63, 0); | ||
| 2383 | try testArgs(u8, u63, 0); | ||
| 2384 | try testArgs(u8, u63, 1 << 0); | ||
| 2385 | try testArgs(u8, u63, 1 << 62); | ||
| 2386 | try testArgs(u16, u63, 0); | ||
| 2387 | try testArgs(u16, u63, 1 << 0); | ||
| 2388 | try testArgs(u16, u63, 1 << 62); | ||
| 2389 | try testArgs(u32, u63, 0); | ||
| 2390 | try testArgs(u32, u63, 1 << 0); | ||
| 2391 | try testArgs(u32, u63, 1 << 62); | ||
| 2392 | try testArgs(u64, u63, 0); | ||
| 2393 | try testArgs(u64, u63, 1 << 0); | ||
| 2394 | try testArgs(u64, u63, 1 << 62); | ||
| 2395 | try testArgs(u128, u63, 0); | ||
| 2396 | try testArgs(u128, u63, 1 << 0); | ||
| 2397 | try testArgs(u128, u63, 1 << 62); | ||
| 2398 | try testArgs(u256, u63, 0); | ||
| 2399 | try testArgs(u256, u63, 1 << 0); | ||
| 2400 | try testArgs(u256, u63, 1 << 62); | ||
| 2401 | try testArgs(u512, u63, 0); | ||
| 2402 | try testArgs(u512, u63, 1 << 0); | ||
| 2403 | try testArgs(u512, u63, 1 << 62); | ||
| 2404 | try testArgs(u1024, u63, 0); | ||
| 2405 | try testArgs(u1024, u63, 1 << 0); | ||
| 2406 | try testArgs(u1024, u63, 1 << 62); | ||
| 2407 | |||
| 2408 | try testArgs(i8, i64, -1 << 63); | ||
| 2409 | try testArgs(i8, i64, -1); | ||
| 2410 | try testArgs(i8, i64, 0); | ||
| 2411 | try testArgs(i16, i64, -1 << 63); | ||
| 2412 | try testArgs(i16, i64, -1); | ||
| 2413 | try testArgs(i16, i64, 0); | ||
| 2414 | try testArgs(i32, i64, -1 << 63); | ||
| 2415 | try testArgs(i32, i64, -1); | ||
| 2416 | try testArgs(i32, i64, 0); | ||
| 2417 | try testArgs(i64, i64, -1 << 63); | ||
| 2418 | try testArgs(i64, i64, -1); | ||
| 2419 | try testArgs(i64, i64, 0); | ||
| 2420 | try testArgs(i128, i64, -1 << 63); | ||
| 2421 | try testArgs(i128, i64, -1); | ||
| 2422 | try testArgs(i128, i64, 0); | ||
| 2423 | try testArgs(i256, i64, -1 << 63); | ||
| 2424 | try testArgs(i256, i64, -1); | ||
| 2425 | try testArgs(i256, i64, 0); | ||
| 2426 | try testArgs(i512, i64, -1 << 63); | ||
| 2427 | try testArgs(i512, i64, -1); | ||
| 2428 | try testArgs(i512, i64, 0); | ||
| 2429 | try testArgs(i1024, i64, -1 << 63); | ||
| 2430 | try testArgs(i1024, i64, -1); | ||
| 2431 | try testArgs(i1024, i64, 0); | ||
| 2432 | try testArgs(u8, u64, 0); | ||
| 2433 | try testArgs(u8, u64, 1 << 0); | ||
| 2434 | try testArgs(u8, u64, 1 << 63); | ||
| 2435 | try testArgs(u16, u64, 0); | ||
| 2436 | try testArgs(u16, u64, 1 << 0); | ||
| 2437 | try testArgs(u16, u64, 1 << 63); | ||
| 2438 | try testArgs(u32, u64, 0); | ||
| 2439 | try testArgs(u32, u64, 1 << 0); | ||
| 2440 | try testArgs(u32, u64, 1 << 63); | ||
| 2441 | try testArgs(u64, u64, 0); | ||
| 2442 | try testArgs(u64, u64, 1 << 0); | ||
| 2443 | try testArgs(u64, u64, 1 << 63); | ||
| 2444 | try testArgs(u128, u64, 0); | ||
| 2445 | try testArgs(u128, u64, 1 << 0); | ||
| 2446 | try testArgs(u128, u64, 1 << 63); | ||
| 2447 | try testArgs(u256, u64, 0); | ||
| 2448 | try testArgs(u256, u64, 1 << 0); | ||
| 2449 | try testArgs(u256, u64, 1 << 63); | ||
| 2450 | try testArgs(u512, u64, 0); | ||
| 2451 | try testArgs(u512, u64, 1 << 0); | ||
| 2452 | try testArgs(u512, u64, 1 << 63); | ||
| 2453 | try testArgs(u1024, u64, 0); | ||
| 2454 | try testArgs(u1024, u64, 1 << 0); | ||
| 2455 | try testArgs(u1024, u64, 1 << 63); | ||
| 2456 | |||
| 2457 | try testArgs(i8, i65, -1 << 64); | ||
| 2458 | try testArgs(i8, i65, -1); | ||
| 2459 | try testArgs(i8, i65, 0); | ||
| 2460 | try testArgs(i16, i65, -1 << 64); | ||
| 2461 | try testArgs(i16, i65, -1); | ||
| 2462 | try testArgs(i16, i65, 0); | ||
| 2463 | try testArgs(i32, i65, -1 << 64); | ||
| 2464 | try testArgs(i32, i65, -1); | ||
| 2465 | try testArgs(i32, i65, 0); | ||
| 2466 | try testArgs(i64, i65, -1 << 64); | ||
| 2467 | try testArgs(i64, i65, -1); | ||
| 2468 | try testArgs(i64, i65, 0); | ||
| 2469 | try testArgs(i128, i65, -1 << 64); | ||
| 2470 | try testArgs(i128, i65, -1); | ||
| 2471 | try testArgs(i128, i65, 0); | ||
| 2472 | try testArgs(i256, i65, -1 << 64); | ||
| 2473 | try testArgs(i256, i65, -1); | ||
| 2474 | try testArgs(i256, i65, 0); | ||
| 2475 | try testArgs(i512, i65, -1 << 64); | ||
| 2476 | try testArgs(i512, i65, -1); | ||
| 2477 | try testArgs(i512, i65, 0); | ||
| 2478 | try testArgs(i1024, i65, -1 << 64); | ||
| 2479 | try testArgs(i1024, i65, -1); | ||
| 2480 | try testArgs(i1024, i65, 0); | ||
| 2481 | try testArgs(u8, u65, 0); | ||
| 2482 | try testArgs(u8, u65, 1 << 0); | ||
| 2483 | try testArgs(u8, u65, 1 << 64); | ||
| 2484 | try testArgs(u16, u65, 0); | ||
| 2485 | try testArgs(u16, u65, 1 << 0); | ||
| 2486 | try testArgs(u16, u65, 1 << 64); | ||
| 2487 | try testArgs(u32, u65, 0); | ||
| 2488 | try testArgs(u32, u65, 1 << 0); | ||
| 2489 | try testArgs(u32, u65, 1 << 64); | ||
| 2490 | try testArgs(u64, u65, 0); | ||
| 2491 | try testArgs(u64, u65, 1 << 0); | ||
| 2492 | try testArgs(u64, u65, 1 << 64); | ||
| 2493 | try testArgs(u128, u65, 0); | ||
| 2494 | try testArgs(u128, u65, 1 << 0); | ||
| 2495 | try testArgs(u128, u65, 1 << 64); | ||
| 2496 | try testArgs(u256, u65, 0); | ||
| 2497 | try testArgs(u256, u65, 1 << 0); | ||
| 2498 | try testArgs(u256, u65, 1 << 64); | ||
| 2499 | try testArgs(u512, u65, 0); | ||
| 2500 | try testArgs(u512, u65, 1 << 0); | ||
| 2501 | try testArgs(u512, u65, 1 << 64); | ||
| 2502 | try testArgs(u1024, u65, 0); | ||
| 2503 | try testArgs(u1024, u65, 1 << 0); | ||
| 2504 | try testArgs(u1024, u65, 1 << 64); | ||
| 2505 | |||
| 2506 | try testArgs(i8, i95, -1 << 94); | ||
| 2507 | try testArgs(i8, i95, -1); | ||
| 2508 | try testArgs(i8, i95, 0); | ||
| 2509 | try testArgs(i16, i95, -1 << 94); | ||
| 2510 | try testArgs(i16, i95, -1); | ||
| 2511 | try testArgs(i16, i95, 0); | ||
| 2512 | try testArgs(i32, i95, -1 << 94); | ||
| 2513 | try testArgs(i32, i95, -1); | ||
| 2514 | try testArgs(i32, i95, 0); | ||
| 2515 | try testArgs(i64, i95, -1 << 94); | ||
| 2516 | try testArgs(i64, i95, -1); | ||
| 2517 | try testArgs(i64, i95, 0); | ||
| 2518 | try testArgs(i128, i95, -1 << 94); | ||
| 2519 | try testArgs(i128, i95, -1); | ||
| 2520 | try testArgs(i128, i95, 0); | ||
| 2521 | try testArgs(i256, i95, -1 << 94); | ||
| 2522 | try testArgs(i256, i95, -1); | ||
| 2523 | try testArgs(i256, i95, 0); | ||
| 2524 | try testArgs(i512, i95, -1 << 94); | ||
| 2525 | try testArgs(i512, i95, -1); | ||
| 2526 | try testArgs(i512, i95, 0); | ||
| 2527 | try testArgs(i1024, i95, -1 << 94); | ||
| 2528 | try testArgs(i1024, i95, -1); | ||
| 2529 | try testArgs(i1024, i95, 0); | ||
| 2530 | try testArgs(u8, u95, 0); | ||
| 2531 | try testArgs(u8, u95, 1 << 0); | ||
| 2532 | try testArgs(u8, u95, 1 << 94); | ||
| 2533 | try testArgs(u16, u95, 0); | ||
| 2534 | try testArgs(u16, u95, 1 << 0); | ||
| 2535 | try testArgs(u16, u95, 1 << 94); | ||
| 2536 | try testArgs(u32, u95, 0); | ||
| 2537 | try testArgs(u32, u95, 1 << 0); | ||
| 2538 | try testArgs(u32, u95, 1 << 94); | ||
| 2539 | try testArgs(u64, u95, 0); | ||
| 2540 | try testArgs(u64, u95, 1 << 0); | ||
| 2541 | try testArgs(u64, u95, 1 << 94); | ||
| 2542 | try testArgs(u128, u95, 0); | ||
| 2543 | try testArgs(u128, u95, 1 << 0); | ||
| 2544 | try testArgs(u128, u95, 1 << 94); | ||
| 2545 | try testArgs(u256, u95, 0); | ||
| 2546 | try testArgs(u256, u95, 1 << 0); | ||
| 2547 | try testArgs(u256, u95, 1 << 94); | ||
| 2548 | try testArgs(u512, u95, 0); | ||
| 2549 | try testArgs(u512, u95, 1 << 0); | ||
| 2550 | try testArgs(u512, u95, 1 << 94); | ||
| 2551 | try testArgs(u1024, u95, 0); | ||
| 2552 | try testArgs(u1024, u95, 1 << 0); | ||
| 2553 | try testArgs(u1024, u95, 1 << 94); | ||
| 2554 | |||
| 2555 | try testArgs(i8, i97, -1 << 96); | ||
| 2556 | try testArgs(i8, i97, -1); | ||
| 2557 | try testArgs(i8, i97, 0); | ||
| 2558 | try testArgs(i16, i97, -1 << 96); | ||
| 2559 | try testArgs(i16, i97, -1); | ||
| 2560 | try testArgs(i16, i97, 0); | ||
| 2561 | try testArgs(i32, i97, -1 << 96); | ||
| 2562 | try testArgs(i32, i97, -1); | ||
| 2563 | try testArgs(i32, i97, 0); | ||
| 2564 | try testArgs(i64, i97, -1 << 96); | ||
| 2565 | try testArgs(i64, i97, -1); | ||
| 2566 | try testArgs(i64, i97, 0); | ||
| 2567 | try testArgs(i128, i97, -1 << 96); | ||
| 2568 | try testArgs(i128, i97, -1); | ||
| 2569 | try testArgs(i128, i97, 0); | ||
| 2570 | try testArgs(i256, i97, -1 << 96); | ||
| 2571 | try testArgs(i256, i97, -1); | ||
| 2572 | try testArgs(i256, i97, 0); | ||
| 2573 | try testArgs(i512, i97, -1 << 96); | ||
| 2574 | try testArgs(i512, i97, -1); | ||
| 2575 | try testArgs(i512, i97, 0); | ||
| 2576 | try testArgs(i1024, i97, -1 << 96); | ||
| 2577 | try testArgs(i1024, i97, -1); | ||
| 2578 | try testArgs(i1024, i97, 0); | ||
| 2579 | try testArgs(u8, u97, 0); | ||
| 2580 | try testArgs(u8, u97, 1 << 0); | ||
| 2581 | try testArgs(u8, u97, 1 << 96); | ||
| 2582 | try testArgs(u16, u97, 0); | ||
| 2583 | try testArgs(u16, u97, 1 << 0); | ||
| 2584 | try testArgs(u16, u97, 1 << 96); | ||
| 2585 | try testArgs(u32, u97, 0); | ||
| 2586 | try testArgs(u32, u97, 1 << 0); | ||
| 2587 | try testArgs(u32, u97, 1 << 96); | ||
| 2588 | try testArgs(u64, u97, 0); | ||
| 2589 | try testArgs(u64, u97, 1 << 0); | ||
| 2590 | try testArgs(u64, u97, 1 << 96); | ||
| 2591 | try testArgs(u128, u97, 0); | ||
| 2592 | try testArgs(u128, u97, 1 << 0); | ||
| 2593 | try testArgs(u128, u97, 1 << 96); | ||
| 2594 | try testArgs(u256, u97, 0); | ||
| 2595 | try testArgs(u256, u97, 1 << 0); | ||
| 2596 | try testArgs(u256, u97, 1 << 96); | ||
| 2597 | try testArgs(u512, u97, 0); | ||
| 2598 | try testArgs(u512, u97, 1 << 0); | ||
| 2599 | try testArgs(u512, u97, 1 << 96); | ||
| 2600 | try testArgs(u1024, u97, 0); | ||
| 2601 | try testArgs(u1024, u97, 1 << 0); | ||
| 2602 | try testArgs(u1024, u97, 1 << 96); | ||
| 2603 | |||
| 2604 | try testArgs(i8, i127, -1 << 126); | ||
| 2605 | try testArgs(i8, i127, -1); | ||
| 2606 | try testArgs(i8, i127, 0); | ||
| 2607 | try testArgs(i16, i127, -1 << 126); | ||
| 2608 | try testArgs(i16, i127, -1); | ||
| 2609 | try testArgs(i16, i127, 0); | ||
| 2610 | try testArgs(i32, i127, -1 << 126); | ||
| 2611 | try testArgs(i32, i127, -1); | ||
| 2612 | try testArgs(i32, i127, 0); | ||
| 2613 | try testArgs(i64, i127, -1 << 126); | ||
| 2614 | try testArgs(i64, i127, -1); | ||
| 2615 | try testArgs(i64, i127, 0); | ||
| 2616 | try testArgs(i128, i127, -1 << 126); | ||
| 2617 | try testArgs(i128, i127, -1); | ||
| 2618 | try testArgs(i128, i127, 0); | ||
| 2619 | try testArgs(i256, i127, -1 << 126); | ||
| 2620 | try testArgs(i256, i127, -1); | ||
| 2621 | try testArgs(i256, i127, 0); | ||
| 2622 | try testArgs(i512, i127, -1 << 126); | ||
| 2623 | try testArgs(i512, i127, -1); | ||
| 2624 | try testArgs(i512, i127, 0); | ||
| 2625 | try testArgs(i1024, i127, -1 << 126); | ||
| 2626 | try testArgs(i1024, i127, -1); | ||
| 2627 | try testArgs(i1024, i127, 0); | ||
| 2628 | try testArgs(u8, u127, 0); | ||
| 2629 | try testArgs(u8, u127, 1 << 0); | ||
| 2630 | try testArgs(u8, u127, 1 << 126); | ||
| 2631 | try testArgs(u16, u127, 0); | ||
| 2632 | try testArgs(u16, u127, 1 << 0); | ||
| 2633 | try testArgs(u16, u127, 1 << 126); | ||
| 2634 | try testArgs(u32, u127, 0); | ||
| 2635 | try testArgs(u32, u127, 1 << 0); | ||
| 2636 | try testArgs(u32, u127, 1 << 126); | ||
| 2637 | try testArgs(u64, u127, 0); | ||
| 2638 | try testArgs(u64, u127, 1 << 0); | ||
| 2639 | try testArgs(u64, u127, 1 << 126); | ||
| 2640 | try testArgs(u128, u127, 0); | ||
| 2641 | try testArgs(u128, u127, 1 << 0); | ||
| 2642 | try testArgs(u128, u127, 1 << 126); | ||
| 2643 | try testArgs(u256, u127, 0); | ||
| 2644 | try testArgs(u256, u127, 1 << 0); | ||
| 2645 | try testArgs(u256, u127, 1 << 126); | ||
| 2646 | try testArgs(u512, u127, 0); | ||
| 2647 | try testArgs(u512, u127, 1 << 0); | ||
| 2648 | try testArgs(u512, u127, 1 << 126); | ||
| 2649 | try testArgs(u1024, u127, 0); | ||
| 2650 | try testArgs(u1024, u127, 1 << 0); | ||
| 2651 | try testArgs(u1024, u127, 1 << 126); | ||
| 2652 | |||
| 2653 | try testArgs(i8, i128, -1 << 127); | ||
| 2654 | try testArgs(i8, i128, -1); | ||
| 2655 | try testArgs(i8, i128, 0); | ||
| 2656 | try testArgs(i16, i128, -1 << 127); | ||
| 2657 | try testArgs(i16, i128, -1); | ||
| 2658 | try testArgs(i16, i128, 0); | ||
| 2659 | try testArgs(i32, i128, -1 << 127); | ||
| 2660 | try testArgs(i32, i128, -1); | ||
| 2661 | try testArgs(i32, i128, 0); | ||
| 2662 | try testArgs(i64, i128, -1 << 127); | ||
| 2663 | try testArgs(i64, i128, -1); | ||
| 2664 | try testArgs(i64, i128, 0); | ||
| 2665 | try testArgs(i128, i128, -1 << 127); | ||
| 2666 | try testArgs(i128, i128, -1); | ||
| 2667 | try testArgs(i128, i128, 0); | ||
| 2668 | try testArgs(i256, i128, -1 << 127); | ||
| 2669 | try testArgs(i256, i128, -1); | ||
| 2670 | try testArgs(i256, i128, 0); | ||
| 2671 | try testArgs(i512, i128, -1 << 127); | ||
| 2672 | try testArgs(i512, i128, -1); | ||
| 2673 | try testArgs(i512, i128, 0); | ||
| 2674 | try testArgs(i1024, i128, -1 << 127); | ||
| 2675 | try testArgs(i1024, i128, -1); | ||
| 2676 | try testArgs(i1024, i128, 0); | ||
| 2677 | try testArgs(u8, u128, 0); | ||
| 2678 | try testArgs(u8, u128, 1 << 0); | ||
| 2679 | try testArgs(u8, u128, 1 << 127); | ||
| 2680 | try testArgs(u16, u128, 0); | ||
| 2681 | try testArgs(u16, u128, 1 << 0); | ||
| 2682 | try testArgs(u16, u128, 1 << 127); | ||
| 2683 | try testArgs(u32, u128, 0); | ||
| 2684 | try testArgs(u32, u128, 1 << 0); | ||
| 2685 | try testArgs(u32, u128, 1 << 127); | ||
| 2686 | try testArgs(u64, u128, 0); | ||
| 2687 | try testArgs(u64, u128, 1 << 0); | ||
| 2688 | try testArgs(u64, u128, 1 << 127); | ||
| 2689 | try testArgs(u128, u128, 0); | ||
| 2690 | try testArgs(u128, u128, 1 << 0); | ||
| 2691 | try testArgs(u128, u128, 1 << 127); | ||
| 2692 | try testArgs(u256, u128, 0); | ||
| 2693 | try testArgs(u256, u128, 1 << 0); | ||
| 2694 | try testArgs(u256, u128, 1 << 127); | ||
| 2695 | try testArgs(u512, u128, 0); | ||
| 2696 | try testArgs(u512, u128, 1 << 0); | ||
| 2697 | try testArgs(u512, u128, 1 << 127); | ||
| 2698 | try testArgs(u1024, u128, 0); | ||
| 2699 | try testArgs(u1024, u128, 1 << 0); | ||
| 2700 | try testArgs(u1024, u128, 1 << 127); | ||
| 2701 | |||
| 2702 | try testArgs(i8, i129, -1 << 128); | ||
| 2703 | try testArgs(i8, i129, -1); | ||
| 2704 | try testArgs(i8, i129, 0); | ||
| 2705 | try testArgs(i16, i129, -1 << 128); | ||
| 2706 | try testArgs(i16, i129, -1); | ||
| 2707 | try testArgs(i16, i129, 0); | ||
| 2708 | try testArgs(i32, i129, -1 << 128); | ||
| 2709 | try testArgs(i32, i129, -1); | ||
| 2710 | try testArgs(i32, i129, 0); | ||
| 2711 | try testArgs(i64, i129, -1 << 128); | ||
| 2712 | try testArgs(i64, i129, -1); | ||
| 2713 | try testArgs(i64, i129, 0); | ||
| 2714 | try testArgs(i128, i129, -1 << 128); | ||
| 2715 | try testArgs(i128, i129, -1); | ||
| 2716 | try testArgs(i128, i129, 0); | ||
| 2717 | try testArgs(i256, i129, -1 << 128); | ||
| 2718 | try testArgs(i256, i129, -1); | ||
| 2719 | try testArgs(i256, i129, 0); | ||
| 2720 | try testArgs(i512, i129, -1 << 128); | ||
| 2721 | try testArgs(i512, i129, -1); | ||
| 2722 | try testArgs(i512, i129, 0); | ||
| 2723 | try testArgs(i1024, i129, -1 << 128); | ||
| 2724 | try testArgs(i1024, i129, -1); | ||
| 2725 | try testArgs(i1024, i129, 0); | ||
| 2726 | try testArgs(u8, u129, 0); | ||
| 2727 | try testArgs(u8, u129, 1 << 0); | ||
| 2728 | try testArgs(u8, u129, 1 << 128); | ||
| 2729 | try testArgs(u16, u129, 0); | ||
| 2730 | try testArgs(u16, u129, 1 << 0); | ||
| 2731 | try testArgs(u16, u129, 1 << 128); | ||
| 2732 | try testArgs(u32, u129, 0); | ||
| 2733 | try testArgs(u32, u129, 1 << 0); | ||
| 2734 | try testArgs(u32, u129, 1 << 128); | ||
| 2735 | try testArgs(u64, u129, 0); | ||
| 2736 | try testArgs(u64, u129, 1 << 0); | ||
| 2737 | try testArgs(u64, u129, 1 << 128); | ||
| 2738 | try testArgs(u128, u129, 0); | ||
| 2739 | try testArgs(u128, u129, 1 << 0); | ||
| 2740 | try testArgs(u128, u129, 1 << 128); | ||
| 2741 | try testArgs(u256, u129, 0); | ||
| 2742 | try testArgs(u256, u129, 1 << 0); | ||
| 2743 | try testArgs(u256, u129, 1 << 128); | ||
| 2744 | try testArgs(u512, u129, 0); | ||
| 2745 | try testArgs(u512, u129, 1 << 0); | ||
| 2746 | try testArgs(u512, u129, 1 << 128); | ||
| 2747 | try testArgs(u1024, u129, 0); | ||
| 2748 | try testArgs(u1024, u129, 1 << 0); | ||
| 2749 | try testArgs(u1024, u129, 1 << 128); | ||
| 2750 | |||
| 2751 | try testArgs(i8, i255, -1 << 254); | ||
| 2752 | try testArgs(i8, i255, -1); | ||
| 2753 | try testArgs(i8, i255, 0); | ||
| 2754 | try testArgs(i16, i255, -1 << 254); | ||
| 2755 | try testArgs(i16, i255, -1); | ||
| 2756 | try testArgs(i16, i255, 0); | ||
| 2757 | try testArgs(i32, i255, -1 << 254); | ||
| 2758 | try testArgs(i32, i255, -1); | ||
| 2759 | try testArgs(i32, i255, 0); | ||
| 2760 | try testArgs(i64, i255, -1 << 254); | ||
| 2761 | try testArgs(i64, i255, -1); | ||
| 2762 | try testArgs(i64, i255, 0); | ||
| 2763 | try testArgs(i128, i255, -1 << 254); | ||
| 2764 | try testArgs(i128, i255, -1); | ||
| 2765 | try testArgs(i128, i255, 0); | ||
| 2766 | try testArgs(i256, i255, -1 << 254); | ||
| 2767 | try testArgs(i256, i255, -1); | ||
| 2768 | try testArgs(i256, i255, 0); | ||
| 2769 | try testArgs(i512, i255, -1 << 254); | ||
| 2770 | try testArgs(i512, i255, -1); | ||
| 2771 | try testArgs(i512, i255, 0); | ||
| 2772 | try testArgs(i1024, i255, -1 << 254); | ||
| 2773 | try testArgs(i1024, i255, -1); | ||
| 2774 | try testArgs(i1024, i255, 0); | ||
| 2775 | try testArgs(u8, u255, 0); | ||
| 2776 | try testArgs(u8, u255, 1 << 0); | ||
| 2777 | try testArgs(u8, u255, 1 << 254); | ||
| 2778 | try testArgs(u16, u255, 0); | ||
| 2779 | try testArgs(u16, u255, 1 << 0); | ||
| 2780 | try testArgs(u16, u255, 1 << 254); | ||
| 2781 | try testArgs(u32, u255, 0); | ||
| 2782 | try testArgs(u32, u255, 1 << 0); | ||
| 2783 | try testArgs(u32, u255, 1 << 254); | ||
| 2784 | try testArgs(u64, u255, 0); | ||
| 2785 | try testArgs(u64, u255, 1 << 0); | ||
| 2786 | try testArgs(u64, u255, 1 << 254); | ||
| 2787 | try testArgs(u128, u255, 0); | ||
| 2788 | try testArgs(u128, u255, 1 << 0); | ||
| 2789 | try testArgs(u128, u255, 1 << 254); | ||
| 2790 | try testArgs(u256, u255, 0); | ||
| 2791 | try testArgs(u256, u255, 1 << 0); | ||
| 2792 | try testArgs(u256, u255, 1 << 254); | ||
| 2793 | try testArgs(u512, u255, 0); | ||
| 2794 | try testArgs(u512, u255, 1 << 0); | ||
| 2795 | try testArgs(u512, u255, 1 << 254); | ||
| 2796 | try testArgs(u1024, u255, 0); | ||
| 2797 | try testArgs(u1024, u255, 1 << 0); | ||
| 2798 | try testArgs(u1024, u255, 1 << 254); | ||
| 2799 | |||
| 2800 | try testArgs(i8, i256, -1 << 255); | ||
| 2801 | try testArgs(i8, i256, -1); | ||
| 2802 | try testArgs(i8, i256, 0); | ||
| 2803 | try testArgs(i16, i256, -1 << 255); | ||
| 2804 | try testArgs(i16, i256, -1); | ||
| 2805 | try testArgs(i16, i256, 0); | ||
| 2806 | try testArgs(i32, i256, -1 << 255); | ||
| 2807 | try testArgs(i32, i256, -1); | ||
| 2808 | try testArgs(i32, i256, 0); | ||
| 2809 | try testArgs(i64, i256, -1 << 255); | ||
| 2810 | try testArgs(i64, i256, -1); | ||
| 2811 | try testArgs(i64, i256, 0); | ||
| 2812 | try testArgs(i128, i256, -1 << 255); | ||
| 2813 | try testArgs(i128, i256, -1); | ||
| 2814 | try testArgs(i128, i256, 0); | ||
| 2815 | try testArgs(i256, i256, -1 << 255); | ||
| 2816 | try testArgs(i256, i256, -1); | ||
| 2817 | try testArgs(i256, i256, 0); | ||
| 2818 | try testArgs(i512, i256, -1 << 255); | ||
| 2819 | try testArgs(i512, i256, -1); | ||
| 2820 | try testArgs(i512, i256, 0); | ||
| 2821 | try testArgs(i1024, i256, -1 << 255); | ||
| 2822 | try testArgs(i1024, i256, -1); | ||
| 2823 | try testArgs(i1024, i256, 0); | ||
| 2824 | try testArgs(u8, u256, 0); | ||
| 2825 | try testArgs(u8, u256, 1 << 0); | ||
| 2826 | try testArgs(u8, u256, 1 << 255); | ||
| 2827 | try testArgs(u16, u256, 0); | ||
| 2828 | try testArgs(u16, u256, 1 << 0); | ||
| 2829 | try testArgs(u16, u256, 1 << 255); | ||
| 2830 | try testArgs(u32, u256, 0); | ||
| 2831 | try testArgs(u32, u256, 1 << 0); | ||
| 2832 | try testArgs(u32, u256, 1 << 255); | ||
| 2833 | try testArgs(u64, u256, 0); | ||
| 2834 | try testArgs(u64, u256, 1 << 0); | ||
| 2835 | try testArgs(u64, u256, 1 << 255); | ||
| 2836 | try testArgs(u128, u256, 0); | ||
| 2837 | try testArgs(u128, u256, 1 << 0); | ||
| 2838 | try testArgs(u128, u256, 1 << 255); | ||
| 2839 | try testArgs(u256, u256, 0); | ||
| 2840 | try testArgs(u256, u256, 1 << 0); | ||
| 2841 | try testArgs(u256, u256, 1 << 255); | ||
| 2842 | try testArgs(u512, u256, 0); | ||
| 2843 | try testArgs(u512, u256, 1 << 0); | ||
| 2844 | try testArgs(u512, u256, 1 << 255); | ||
| 2845 | try testArgs(u1024, u256, 0); | ||
| 2846 | try testArgs(u1024, u256, 1 << 0); | ||
| 2847 | try testArgs(u1024, u256, 1 << 255); | ||
| 2848 | |||
| 2849 | try testArgs(i8, i257, -1 << 256); | ||
| 2850 | try testArgs(i8, i257, -1); | ||
| 2851 | try testArgs(i8, i257, 0); | ||
| 2852 | try testArgs(i16, i257, -1 << 256); | ||
| 2853 | try testArgs(i16, i257, -1); | ||
| 2854 | try testArgs(i16, i257, 0); | ||
| 2855 | try testArgs(i32, i257, -1 << 256); | ||
| 2856 | try testArgs(i32, i257, -1); | ||
| 2857 | try testArgs(i32, i257, 0); | ||
| 2858 | try testArgs(i64, i257, -1 << 256); | ||
| 2859 | try testArgs(i64, i257, -1); | ||
| 2860 | try testArgs(i64, i257, 0); | ||
| 2861 | try testArgs(i128, i257, -1 << 256); | ||
| 2862 | try testArgs(i128, i257, -1); | ||
| 2863 | try testArgs(i128, i257, 0); | ||
| 2864 | try testArgs(i256, i257, -1 << 256); | ||
| 2865 | try testArgs(i256, i257, -1); | ||
| 2866 | try testArgs(i256, i257, 0); | ||
| 2867 | try testArgs(i512, i257, -1 << 256); | ||
| 2868 | try testArgs(i512, i257, -1); | ||
| 2869 | try testArgs(i512, i257, 0); | ||
| 2870 | try testArgs(i1024, i257, -1 << 256); | ||
| 2871 | try testArgs(i1024, i257, -1); | ||
| 2872 | try testArgs(i1024, i257, 0); | ||
| 2873 | try testArgs(u8, u257, 0); | ||
| 2874 | try testArgs(u8, u257, 1 << 0); | ||
| 2875 | try testArgs(u8, u257, 1 << 256); | ||
| 2876 | try testArgs(u16, u257, 0); | ||
| 2877 | try testArgs(u16, u257, 1 << 0); | ||
| 2878 | try testArgs(u16, u257, 1 << 256); | ||
| 2879 | try testArgs(u32, u257, 0); | ||
| 2880 | try testArgs(u32, u257, 1 << 0); | ||
| 2881 | try testArgs(u32, u257, 1 << 256); | ||
| 2882 | try testArgs(u64, u257, 0); | ||
| 2883 | try testArgs(u64, u257, 1 << 0); | ||
| 2884 | try testArgs(u64, u257, 1 << 256); | ||
| 2885 | try testArgs(u128, u257, 0); | ||
| 2886 | try testArgs(u128, u257, 1 << 0); | ||
| 2887 | try testArgs(u128, u257, 1 << 256); | ||
| 2888 | try testArgs(u256, u257, 0); | ||
| 2889 | try testArgs(u256, u257, 1 << 0); | ||
| 2890 | try testArgs(u256, u257, 1 << 256); | ||
| 2891 | try testArgs(u512, u257, 0); | ||
| 2892 | try testArgs(u512, u257, 1 << 0); | ||
| 2893 | try testArgs(u512, u257, 1 << 256); | ||
| 2894 | try testArgs(u1024, u257, 0); | ||
| 2895 | try testArgs(u1024, u257, 1 << 0); | ||
| 2896 | try testArgs(u1024, u257, 1 << 256); | ||
| 2897 | |||
| 2898 | try testArgs(i8, i511, -1 << 510); | ||
| 2899 | try testArgs(i8, i511, -1); | ||
| 2900 | try testArgs(i8, i511, 0); | ||
| 2901 | try testArgs(i16, i511, -1 << 510); | ||
| 2902 | try testArgs(i16, i511, -1); | ||
| 2903 | try testArgs(i16, i511, 0); | ||
| 2904 | try testArgs(i32, i511, -1 << 510); | ||
| 2905 | try testArgs(i32, i511, -1); | ||
| 2906 | try testArgs(i32, i511, 0); | ||
| 2907 | try testArgs(i64, i511, -1 << 510); | ||
| 2908 | try testArgs(i64, i511, -1); | ||
| 2909 | try testArgs(i64, i511, 0); | ||
| 2910 | try testArgs(i128, i511, -1 << 510); | ||
| 2911 | try testArgs(i128, i511, -1); | ||
| 2912 | try testArgs(i128, i511, 0); | ||
| 2913 | try testArgs(i256, i511, -1 << 510); | ||
| 2914 | try testArgs(i256, i511, -1); | ||
| 2915 | try testArgs(i256, i511, 0); | ||
| 2916 | try testArgs(i512, i511, -1 << 510); | ||
| 2917 | try testArgs(i512, i511, -1); | ||
| 2918 | try testArgs(i512, i511, 0); | ||
| 2919 | try testArgs(i1024, i511, -1 << 510); | ||
| 2920 | try testArgs(i1024, i511, -1); | ||
| 2921 | try testArgs(i1024, i511, 0); | ||
| 2922 | try testArgs(u8, u511, 0); | ||
| 2923 | try testArgs(u8, u511, 1 << 0); | ||
| 2924 | try testArgs(u8, u511, 1 << 510); | ||
| 2925 | try testArgs(u16, u511, 0); | ||
| 2926 | try testArgs(u16, u511, 1 << 0); | ||
| 2927 | try testArgs(u16, u511, 1 << 510); | ||
| 2928 | try testArgs(u32, u511, 0); | ||
| 2929 | try testArgs(u32, u511, 1 << 0); | ||
| 2930 | try testArgs(u32, u511, 1 << 510); | ||
| 2931 | try testArgs(u64, u511, 0); | ||
| 2932 | try testArgs(u64, u511, 1 << 0); | ||
| 2933 | try testArgs(u64, u511, 1 << 510); | ||
| 2934 | try testArgs(u128, u511, 0); | ||
| 2935 | try testArgs(u128, u511, 1 << 0); | ||
| 2936 | try testArgs(u128, u511, 1 << 510); | ||
| 2937 | try testArgs(u256, u511, 0); | ||
| 2938 | try testArgs(u256, u511, 1 << 0); | ||
| 2939 | try testArgs(u256, u511, 1 << 510); | ||
| 2940 | try testArgs(u512, u511, 0); | ||
| 2941 | try testArgs(u512, u511, 1 << 0); | ||
| 2942 | try testArgs(u512, u511, 1 << 510); | ||
| 2943 | try testArgs(u1024, u511, 0); | ||
| 2944 | try testArgs(u1024, u511, 1 << 0); | ||
| 2945 | try testArgs(u1024, u511, 1 << 510); | ||
| 2946 | |||
| 2947 | try testArgs(i8, i512, -1 << 511); | ||
| 2948 | try testArgs(i8, i512, -1); | ||
| 2949 | try testArgs(i8, i512, 0); | ||
| 2950 | try testArgs(i16, i512, -1 << 511); | ||
| 2951 | try testArgs(i16, i512, -1); | ||
| 2952 | try testArgs(i16, i512, 0); | ||
| 2953 | try testArgs(i32, i512, -1 << 511); | ||
| 2954 | try testArgs(i32, i512, -1); | ||
| 2955 | try testArgs(i32, i512, 0); | ||
| 2956 | try testArgs(i64, i512, -1 << 511); | ||
| 2957 | try testArgs(i64, i512, -1); | ||
| 2958 | try testArgs(i64, i512, 0); | ||
| 2959 | try testArgs(i128, i512, -1 << 511); | ||
| 2960 | try testArgs(i128, i512, -1); | ||
| 2961 | try testArgs(i128, i512, 0); | ||
| 2962 | try testArgs(i256, i512, -1 << 511); | ||
| 2963 | try testArgs(i256, i512, -1); | ||
| 2964 | try testArgs(i256, i512, 0); | ||
| 2965 | try testArgs(i512, i512, -1 << 511); | ||
| 2966 | try testArgs(i512, i512, -1); | ||
| 2967 | try testArgs(i512, i512, 0); | ||
| 2968 | try testArgs(i1024, i512, -1 << 511); | ||
| 2969 | try testArgs(i1024, i512, -1); | ||
| 2970 | try testArgs(i1024, i512, 0); | ||
| 2971 | try testArgs(u8, u512, 0); | ||
| 2972 | try testArgs(u8, u512, 1 << 0); | ||
| 2973 | try testArgs(u8, u512, 1 << 511); | ||
| 2974 | try testArgs(u16, u512, 0); | ||
| 2975 | try testArgs(u16, u512, 1 << 0); | ||
| 2976 | try testArgs(u16, u512, 1 << 511); | ||
| 2977 | try testArgs(u32, u512, 0); | ||
| 2978 | try testArgs(u32, u512, 1 << 0); | ||
| 2979 | try testArgs(u32, u512, 1 << 511); | ||
| 2980 | try testArgs(u64, u512, 0); | ||
| 2981 | try testArgs(u64, u512, 1 << 0); | ||
| 2982 | try testArgs(u64, u512, 1 << 511); | ||
| 2983 | try testArgs(u128, u512, 0); | ||
| 2984 | try testArgs(u128, u512, 1 << 0); | ||
| 2985 | try testArgs(u128, u512, 1 << 511); | ||
| 2986 | try testArgs(u256, u512, 0); | ||
| 2987 | try testArgs(u256, u512, 1 << 0); | ||
| 2988 | try testArgs(u256, u512, 1 << 511); | ||
| 2989 | try testArgs(u512, u512, 0); | ||
| 2990 | try testArgs(u512, u512, 1 << 0); | ||
| 2991 | try testArgs(u512, u512, 1 << 511); | ||
| 2992 | try testArgs(u1024, u512, 0); | ||
| 2993 | try testArgs(u1024, u512, 1 << 0); | ||
| 2994 | try testArgs(u1024, u512, 1 << 511); | ||
| 2995 | |||
| 2996 | try testArgs(i8, i513, -1 << 512); | ||
| 2997 | try testArgs(i8, i513, -1); | ||
| 2998 | try testArgs(i8, i513, 0); | ||
| 2999 | try testArgs(i16, i513, -1 << 512); | ||
| 3000 | try testArgs(i16, i513, -1); | ||
| 3001 | try testArgs(i16, i513, 0); | ||
| 3002 | try testArgs(i32, i513, -1 << 512); | ||
| 3003 | try testArgs(i32, i513, -1); | ||
| 3004 | try testArgs(i32, i513, 0); | ||
| 3005 | try testArgs(i64, i513, -1 << 512); | ||
| 3006 | try testArgs(i64, i513, -1); | ||
| 3007 | try testArgs(i64, i513, 0); | ||
| 3008 | try testArgs(i128, i513, -1 << 512); | ||
| 3009 | try testArgs(i128, i513, -1); | ||
| 3010 | try testArgs(i128, i513, 0); | ||
| 3011 | try testArgs(i256, i513, -1 << 512); | ||
| 3012 | try testArgs(i256, i513, -1); | ||
| 3013 | try testArgs(i256, i513, 0); | ||
| 3014 | try testArgs(i512, i513, -1 << 512); | ||
| 3015 | try testArgs(i512, i513, -1); | ||
| 3016 | try testArgs(i512, i513, 0); | ||
| 3017 | try testArgs(i1024, i513, -1 << 512); | ||
| 3018 | try testArgs(i1024, i513, -1); | ||
| 3019 | try testArgs(i1024, i513, 0); | ||
| 3020 | try testArgs(u8, u513, 0); | ||
| 3021 | try testArgs(u8, u513, 1 << 0); | ||
| 3022 | try testArgs(u8, u513, 1 << 512); | ||
| 3023 | try testArgs(u16, u513, 0); | ||
| 3024 | try testArgs(u16, u513, 1 << 0); | ||
| 3025 | try testArgs(u16, u513, 1 << 512); | ||
| 3026 | try testArgs(u32, u513, 0); | ||
| 3027 | try testArgs(u32, u513, 1 << 0); | ||
| 3028 | try testArgs(u32, u513, 1 << 512); | ||
| 3029 | try testArgs(u64, u513, 0); | ||
| 3030 | try testArgs(u64, u513, 1 << 0); | ||
| 3031 | try testArgs(u64, u513, 1 << 512); | ||
| 3032 | try testArgs(u128, u513, 0); | ||
| 3033 | try testArgs(u128, u513, 1 << 0); | ||
| 3034 | try testArgs(u128, u513, 1 << 512); | ||
| 3035 | try testArgs(u256, u513, 0); | ||
| 3036 | try testArgs(u256, u513, 1 << 0); | ||
| 3037 | try testArgs(u256, u513, 1 << 512); | ||
| 3038 | try testArgs(u512, u513, 0); | ||
| 3039 | try testArgs(u512, u513, 1 << 0); | ||
| 3040 | try testArgs(u512, u513, 1 << 512); | ||
| 3041 | try testArgs(u1024, u513, 0); | ||
| 3042 | try testArgs(u1024, u513, 1 << 0); | ||
| 3043 | try testArgs(u1024, u513, 1 << 512); | ||
| 3044 | |||
| 3045 | try testArgs(i8, i1023, -1 << 1022); | ||
| 3046 | try testArgs(i8, i1023, -1); | ||
| 3047 | try testArgs(i8, i1023, 0); | ||
| 3048 | try testArgs(i16, i1023, -1 << 1022); | ||
| 3049 | try testArgs(i16, i1023, -1); | ||
| 3050 | try testArgs(i16, i1023, 0); | ||
| 3051 | try testArgs(i32, i1023, -1 << 1022); | ||
| 3052 | try testArgs(i32, i1023, -1); | ||
| 3053 | try testArgs(i32, i1023, 0); | ||
| 3054 | try testArgs(i64, i1023, -1 << 1022); | ||
| 3055 | try testArgs(i64, i1023, -1); | ||
| 3056 | try testArgs(i64, i1023, 0); | ||
| 3057 | try testArgs(i128, i1023, -1 << 1022); | ||
| 3058 | try testArgs(i128, i1023, -1); | ||
| 3059 | try testArgs(i128, i1023, 0); | ||
| 3060 | try testArgs(i256, i1023, -1 << 1022); | ||
| 3061 | try testArgs(i256, i1023, -1); | ||
| 3062 | try testArgs(i256, i1023, 0); | ||
| 3063 | try testArgs(i512, i1023, -1 << 1022); | ||
| 3064 | try testArgs(i512, i1023, -1); | ||
| 3065 | try testArgs(i512, i1023, 0); | ||
| 3066 | try testArgs(i1024, i1023, -1 << 1022); | ||
| 3067 | try testArgs(i1024, i1023, -1); | ||
| 3068 | try testArgs(i1024, i1023, 0); | ||
| 3069 | try testArgs(u8, u1023, 0); | ||
| 3070 | try testArgs(u8, u1023, 1 << 0); | ||
| 3071 | try testArgs(u8, u1023, 1 << 1022); | ||
| 3072 | try testArgs(u16, u1023, 0); | ||
| 3073 | try testArgs(u16, u1023, 1 << 0); | ||
| 3074 | try testArgs(u16, u1023, 1 << 1022); | ||
| 3075 | try testArgs(u32, u1023, 0); | ||
| 3076 | try testArgs(u32, u1023, 1 << 0); | ||
| 3077 | try testArgs(u32, u1023, 1 << 1022); | ||
| 3078 | try testArgs(u64, u1023, 0); | ||
| 3079 | try testArgs(u64, u1023, 1 << 0); | ||
| 3080 | try testArgs(u64, u1023, 1 << 1022); | ||
| 3081 | try testArgs(u128, u1023, 0); | ||
| 3082 | try testArgs(u128, u1023, 1 << 0); | ||
| 3083 | try testArgs(u128, u1023, 1 << 1022); | ||
| 3084 | try testArgs(u256, u1023, 0); | ||
| 3085 | try testArgs(u256, u1023, 1 << 0); | ||
| 3086 | try testArgs(u256, u1023, 1 << 1022); | ||
| 3087 | try testArgs(u512, u1023, 0); | ||
| 3088 | try testArgs(u512, u1023, 1 << 0); | ||
| 3089 | try testArgs(u512, u1023, 1 << 1022); | ||
| 3090 | try testArgs(u1024, u1023, 0); | ||
| 3091 | try testArgs(u1024, u1023, 1 << 0); | ||
| 3092 | try testArgs(u1024, u1023, 1 << 1022); | ||
| 3093 | |||
| 3094 | try testArgs(i8, i1024, -1 << 1023); | ||
| 3095 | try testArgs(i8, i1024, -1); | ||
| 3096 | try testArgs(i8, i1024, 0); | ||
| 3097 | try testArgs(i16, i1024, -1 << 1023); | ||
| 3098 | try testArgs(i16, i1024, -1); | ||
| 3099 | try testArgs(i16, i1024, 0); | ||
| 3100 | try testArgs(i32, i1024, -1 << 1023); | ||
| 3101 | try testArgs(i32, i1024, -1); | ||
| 3102 | try testArgs(i32, i1024, 0); | ||
| 3103 | try testArgs(i64, i1024, -1 << 1023); | ||
| 3104 | try testArgs(i64, i1024, -1); | ||
| 3105 | try testArgs(i64, i1024, 0); | ||
| 3106 | try testArgs(i128, i1024, -1 << 1023); | ||
| 3107 | try testArgs(i128, i1024, -1); | ||
| 3108 | try testArgs(i128, i1024, 0); | ||
| 3109 | try testArgs(i256, i1024, -1 << 1023); | ||
| 3110 | try testArgs(i256, i1024, -1); | ||
| 3111 | try testArgs(i256, i1024, 0); | ||
| 3112 | try testArgs(i512, i1024, -1 << 1023); | ||
| 3113 | try testArgs(i512, i1024, -1); | ||
| 3114 | try testArgs(i512, i1024, 0); | ||
| 3115 | try testArgs(i1024, i1024, -1 << 1023); | ||
| 3116 | try testArgs(i1024, i1024, -1); | ||
| 3117 | try testArgs(i1024, i1024, 0); | ||
| 3118 | try testArgs(u8, u1024, 0); | ||
| 3119 | try testArgs(u8, u1024, 1 << 0); | ||
| 3120 | try testArgs(u8, u1024, 1 << 1023); | ||
| 3121 | try testArgs(u16, u1024, 0); | ||
| 3122 | try testArgs(u16, u1024, 1 << 0); | ||
| 3123 | try testArgs(u16, u1024, 1 << 1023); | ||
| 3124 | try testArgs(u32, u1024, 0); | ||
| 3125 | try testArgs(u32, u1024, 1 << 0); | ||
| 3126 | try testArgs(u32, u1024, 1 << 1023); | ||
| 3127 | try testArgs(u64, u1024, 0); | ||
| 3128 | try testArgs(u64, u1024, 1 << 0); | ||
| 3129 | try testArgs(u64, u1024, 1 << 1023); | ||
| 3130 | try testArgs(u128, u1024, 0); | ||
| 3131 | try testArgs(u128, u1024, 1 << 0); | ||
| 3132 | try testArgs(u128, u1024, 1 << 1023); | ||
| 3133 | try testArgs(u256, u1024, 0); | ||
| 3134 | try testArgs(u256, u1024, 1 << 0); | ||
| 3135 | try testArgs(u256, u1024, 1 << 1023); | ||
| 3136 | try testArgs(u512, u1024, 0); | ||
| 3137 | try testArgs(u512, u1024, 1 << 0); | ||
| 3138 | try testArgs(u512, u1024, 1 << 1023); | ||
| 3139 | try testArgs(u1024, u1024, 0); | ||
| 3140 | try testArgs(u1024, u1024, 1 << 0); | ||
| 3141 | try testArgs(u1024, u1024, 1 << 1023); | ||
| 3142 | |||
| 3143 | try testArgs(i8, i1025, -1 << 1024); | ||
| 3144 | try testArgs(i8, i1025, -1); | ||
| 3145 | try testArgs(i8, i1025, 0); | ||
| 3146 | try testArgs(i16, i1025, -1 << 1024); | ||
| 3147 | try testArgs(i16, i1025, -1); | ||
| 3148 | try testArgs(i16, i1025, 0); | ||
| 3149 | try testArgs(i32, i1025, -1 << 1024); | ||
| 3150 | try testArgs(i32, i1025, -1); | ||
| 3151 | try testArgs(i32, i1025, 0); | ||
| 3152 | try testArgs(i64, i1025, -1 << 1024); | ||
| 3153 | try testArgs(i64, i1025, -1); | ||
| 3154 | try testArgs(i64, i1025, 0); | ||
| 3155 | try testArgs(i128, i1025, -1 << 1024); | ||
| 3156 | try testArgs(i128, i1025, -1); | ||
| 3157 | try testArgs(i128, i1025, 0); | ||
| 3158 | try testArgs(i256, i1025, -1 << 1024); | ||
| 3159 | try testArgs(i256, i1025, -1); | ||
| 3160 | try testArgs(i256, i1025, 0); | ||
| 3161 | try testArgs(i512, i1025, -1 << 1024); | ||
| 3162 | try testArgs(i512, i1025, -1); | ||
| 3163 | try testArgs(i512, i1025, 0); | ||
| 3164 | try testArgs(i1024, i1025, -1 << 1024); | ||
| 3165 | try testArgs(i1024, i1025, -1); | ||
| 3166 | try testArgs(i1024, i1025, 0); | ||
| 3167 | try testArgs(u8, u1025, 0); | ||
| 3168 | try testArgs(u8, u1025, 1 << 0); | ||
| 3169 | try testArgs(u8, u1025, 1 << 1024); | ||
| 3170 | try testArgs(u16, u1025, 0); | ||
| 3171 | try testArgs(u16, u1025, 1 << 0); | ||
| 3172 | try testArgs(u16, u1025, 1 << 1024); | ||
| 3173 | try testArgs(u32, u1025, 0); | ||
| 3174 | try testArgs(u32, u1025, 1 << 0); | ||
| 3175 | try testArgs(u32, u1025, 1 << 1024); | ||
| 3176 | try testArgs(u64, u1025, 0); | ||
| 3177 | try testArgs(u64, u1025, 1 << 0); | ||
| 3178 | try testArgs(u64, u1025, 1 << 1024); | ||
| 3179 | try testArgs(u128, u1025, 0); | ||
| 3180 | try testArgs(u128, u1025, 1 << 0); | ||
| 3181 | try testArgs(u128, u1025, 1 << 1024); | ||
| 3182 | try testArgs(u256, u1025, 0); | ||
| 3183 | try testArgs(u256, u1025, 1 << 0); | ||
| 3184 | try testArgs(u256, u1025, 1 << 1024); | ||
| 3185 | try testArgs(u512, u1025, 0); | ||
| 3186 | try testArgs(u512, u1025, 1 << 0); | ||
| 3187 | try testArgs(u512, u1025, 1 << 1024); | ||
| 3188 | try testArgs(u1024, u1025, 0); | ||
| 3189 | try testArgs(u1024, u1025, 1 << 0); | ||
| 3190 | try testArgs(u1024, u1025, 1 << 1024); | ||
| 3191 | } | ||
| 3192 | fn testInts() !void { | ||
| 3193 | try testSameSignednessInts(); | ||
| 3194 | |||
| 3195 | try testArgs(u8, i1, -1); | ||
| 3196 | try testArgs(u8, i1, 0); | ||
| 3197 | try testArgs(u16, i1, -1); | ||
| 3198 | try testArgs(u16, i1, 0); | ||
| 3199 | try testArgs(u32, i1, -1); | ||
| 3200 | try testArgs(u32, i1, 0); | ||
| 3201 | try testArgs(u64, i1, -1); | ||
| 3202 | try testArgs(u64, i1, 0); | ||
| 3203 | try testArgs(u128, i1, -1); | ||
| 3204 | try testArgs(u128, i1, 0); | ||
| 3205 | try testArgs(u256, i1, -1); | ||
| 3206 | try testArgs(u256, i1, 0); | ||
| 3207 | try testArgs(u512, i1, -1); | ||
| 3208 | try testArgs(u512, i1, 0); | ||
| 3209 | try testArgs(u1024, i1, -1); | ||
| 3210 | try testArgs(u1024, i1, 0); | ||
| 3211 | try testArgs(i8, u1, 0); | ||
| 3212 | try testArgs(i8, u1, 1 << 0); | ||
| 3213 | try testArgs(i16, u1, 0); | ||
| 3214 | try testArgs(i16, u1, 1 << 0); | ||
| 3215 | try testArgs(i32, u1, 0); | ||
| 3216 | try testArgs(i32, u1, 1 << 0); | ||
| 3217 | try testArgs(i64, u1, 0); | ||
| 3218 | try testArgs(i64, u1, 1 << 0); | ||
| 3219 | try testArgs(i128, u1, 0); | ||
| 3220 | try testArgs(i128, u1, 1 << 0); | ||
| 3221 | try testArgs(i256, u1, 0); | ||
| 3222 | try testArgs(i256, u1, 1 << 0); | ||
| 3223 | try testArgs(i512, u1, 0); | ||
| 3224 | try testArgs(i512, u1, 1 << 0); | ||
| 3225 | try testArgs(i1024, u1, 0); | ||
| 3226 | try testArgs(i1024, u1, 1 << 0); | ||
| 3227 | |||
| 3228 | try testArgs(u8, i2, -1 << 1); | ||
| 3229 | try testArgs(u8, i2, -1); | ||
| 3230 | try testArgs(u8, i2, 0); | ||
| 3231 | try testArgs(u16, i2, -1 << 1); | ||
| 3232 | try testArgs(u16, i2, -1); | ||
| 3233 | try testArgs(u16, i2, 0); | ||
| 3234 | try testArgs(u32, i2, -1 << 1); | ||
| 3235 | try testArgs(u32, i2, -1); | ||
| 3236 | try testArgs(u32, i2, 0); | ||
| 3237 | try testArgs(u64, i2, -1 << 1); | ||
| 3238 | try testArgs(u64, i2, -1); | ||
| 3239 | try testArgs(u64, i2, 0); | ||
| 3240 | try testArgs(u128, i2, -1 << 1); | ||
| 3241 | try testArgs(u128, i2, -1); | ||
| 3242 | try testArgs(u128, i2, 0); | ||
| 3243 | try testArgs(u256, i2, -1 << 1); | ||
| 3244 | try testArgs(u256, i2, -1); | ||
| 3245 | try testArgs(u256, i2, 0); | ||
| 3246 | try testArgs(u512, i2, -1 << 1); | ||
| 3247 | try testArgs(u512, i2, -1); | ||
| 3248 | try testArgs(u512, i2, 0); | ||
| 3249 | try testArgs(u1024, i2, -1 << 1); | ||
| 3250 | try testArgs(u1024, i2, -1); | ||
| 3251 | try testArgs(u1024, i2, 0); | ||
| 3252 | try testArgs(i8, u2, 0); | ||
| 3253 | try testArgs(i8, u2, 1 << 0); | ||
| 3254 | try testArgs(i8, u2, 1 << 1); | ||
| 3255 | try testArgs(i16, u2, 0); | ||
| 3256 | try testArgs(i16, u2, 1 << 0); | ||
| 3257 | try testArgs(i16, u2, 1 << 1); | ||
| 3258 | try testArgs(i32, u2, 0); | ||
| 3259 | try testArgs(i32, u2, 1 << 0); | ||
| 3260 | try testArgs(i32, u2, 1 << 1); | ||
| 3261 | try testArgs(i64, u2, 0); | ||
| 3262 | try testArgs(i64, u2, 1 << 0); | ||
| 3263 | try testArgs(i64, u2, 1 << 1); | ||
| 3264 | try testArgs(i128, u2, 0); | ||
| 3265 | try testArgs(i128, u2, 1 << 0); | ||
| 3266 | try testArgs(i128, u2, 1 << 1); | ||
| 3267 | try testArgs(i256, u2, 0); | ||
| 3268 | try testArgs(i256, u2, 1 << 0); | ||
| 3269 | try testArgs(i256, u2, 1 << 1); | ||
| 3270 | try testArgs(i512, u2, 0); | ||
| 3271 | try testArgs(i512, u2, 1 << 0); | ||
| 3272 | try testArgs(i512, u2, 1 << 1); | ||
| 3273 | try testArgs(i1024, u2, 0); | ||
| 3274 | try testArgs(i1024, u2, 1 << 0); | ||
| 3275 | try testArgs(i1024, u2, 1 << 1); | ||
| 3276 | |||
| 3277 | try testArgs(u8, i3, -1 << 2); | ||
| 3278 | try testArgs(u8, i3, -1); | ||
| 3279 | try testArgs(u8, i3, 0); | ||
| 3280 | try testArgs(u16, i3, -1 << 2); | ||
| 3281 | try testArgs(u16, i3, -1); | ||
| 3282 | try testArgs(u16, i3, 0); | ||
| 3283 | try testArgs(u32, i3, -1 << 2); | ||
| 3284 | try testArgs(u32, i3, -1); | ||
| 3285 | try testArgs(u32, i3, 0); | ||
| 3286 | try testArgs(u64, i3, -1 << 2); | ||
| 3287 | try testArgs(u64, i3, -1); | ||
| 3288 | try testArgs(u64, i3, 0); | ||
| 3289 | try testArgs(u128, i3, -1 << 2); | ||
| 3290 | try testArgs(u128, i3, -1); | ||
| 3291 | try testArgs(u128, i3, 0); | ||
| 3292 | try testArgs(u256, i3, -1 << 2); | ||
| 3293 | try testArgs(u256, i3, -1); | ||
| 3294 | try testArgs(u256, i3, 0); | ||
| 3295 | try testArgs(u512, i3, -1 << 2); | ||
| 3296 | try testArgs(u512, i3, -1); | ||
| 3297 | try testArgs(u512, i3, 0); | ||
| 3298 | try testArgs(u1024, i3, -1 << 2); | ||
| 3299 | try testArgs(u1024, i3, -1); | ||
| 3300 | try testArgs(u1024, i3, 0); | ||
| 3301 | try testArgs(i8, u3, 0); | ||
| 3302 | try testArgs(i8, u3, 1 << 0); | ||
| 3303 | try testArgs(i8, u3, 1 << 2); | ||
| 3304 | try testArgs(i16, u3, 0); | ||
| 3305 | try testArgs(i16, u3, 1 << 0); | ||
| 3306 | try testArgs(i16, u3, 1 << 2); | ||
| 3307 | try testArgs(i32, u3, 0); | ||
| 3308 | try testArgs(i32, u3, 1 << 0); | ||
| 3309 | try testArgs(i32, u3, 1 << 2); | ||
| 3310 | try testArgs(i64, u3, 0); | ||
| 3311 | try testArgs(i64, u3, 1 << 0); | ||
| 3312 | try testArgs(i64, u3, 1 << 2); | ||
| 3313 | try testArgs(i128, u3, 0); | ||
| 3314 | try testArgs(i128, u3, 1 << 0); | ||
| 3315 | try testArgs(i128, u3, 1 << 2); | ||
| 3316 | try testArgs(i256, u3, 0); | ||
| 3317 | try testArgs(i256, u3, 1 << 0); | ||
| 3318 | try testArgs(i256, u3, 1 << 2); | ||
| 3319 | try testArgs(i512, u3, 0); | ||
| 3320 | try testArgs(i512, u3, 1 << 0); | ||
| 3321 | try testArgs(i512, u3, 1 << 2); | ||
| 3322 | try testArgs(i1024, u3, 0); | ||
| 3323 | try testArgs(i1024, u3, 1 << 0); | ||
| 3324 | try testArgs(i1024, u3, 1 << 2); | ||
| 3325 | |||
| 3326 | try testArgs(u8, i4, -1 << 3); | ||
| 3327 | try testArgs(u8, i4, -1); | ||
| 3328 | try testArgs(u8, i4, 0); | ||
| 3329 | try testArgs(u16, i4, -1 << 3); | ||
| 3330 | try testArgs(u16, i4, -1); | ||
| 3331 | try testArgs(u16, i4, 0); | ||
| 3332 | try testArgs(u32, i4, -1 << 3); | ||
| 3333 | try testArgs(u32, i4, -1); | ||
| 3334 | try testArgs(u32, i4, 0); | ||
| 3335 | try testArgs(u64, i4, -1 << 3); | ||
| 3336 | try testArgs(u64, i4, -1); | ||
| 3337 | try testArgs(u64, i4, 0); | ||
| 3338 | try testArgs(u128, i4, -1 << 3); | ||
| 3339 | try testArgs(u128, i4, -1); | ||
| 3340 | try testArgs(u128, i4, 0); | ||
| 3341 | try testArgs(u256, i4, -1 << 3); | ||
| 3342 | try testArgs(u256, i4, -1); | ||
| 3343 | try testArgs(u256, i4, 0); | ||
| 3344 | try testArgs(u512, i4, -1 << 3); | ||
| 3345 | try testArgs(u512, i4, -1); | ||
| 3346 | try testArgs(u512, i4, 0); | ||
| 3347 | try testArgs(u1024, i4, -1 << 3); | ||
| 3348 | try testArgs(u1024, i4, -1); | ||
| 3349 | try testArgs(u1024, i4, 0); | ||
| 3350 | try testArgs(i8, u4, 0); | ||
| 3351 | try testArgs(i8, u4, 1 << 0); | ||
| 3352 | try testArgs(i8, u4, 1 << 3); | ||
| 3353 | try testArgs(i16, u4, 0); | ||
| 3354 | try testArgs(i16, u4, 1 << 0); | ||
| 3355 | try testArgs(i16, u4, 1 << 3); | ||
| 3356 | try testArgs(i32, u4, 0); | ||
| 3357 | try testArgs(i32, u4, 1 << 0); | ||
| 3358 | try testArgs(i32, u4, 1 << 3); | ||
| 3359 | try testArgs(i64, u4, 0); | ||
| 3360 | try testArgs(i64, u4, 1 << 0); | ||
| 3361 | try testArgs(i64, u4, 1 << 3); | ||
| 3362 | try testArgs(i128, u4, 0); | ||
| 3363 | try testArgs(i128, u4, 1 << 0); | ||
| 3364 | try testArgs(i128, u4, 1 << 3); | ||
| 3365 | try testArgs(i256, u4, 0); | ||
| 3366 | try testArgs(i256, u4, 1 << 0); | ||
| 3367 | try testArgs(i256, u4, 1 << 3); | ||
| 3368 | try testArgs(i512, u4, 0); | ||
| 3369 | try testArgs(i512, u4, 1 << 0); | ||
| 3370 | try testArgs(i512, u4, 1 << 3); | ||
| 3371 | try testArgs(i1024, u4, 0); | ||
| 3372 | try testArgs(i1024, u4, 1 << 0); | ||
| 3373 | try testArgs(i1024, u4, 1 << 3); | ||
| 3374 | |||
| 3375 | try testArgs(u8, i5, -1 << 4); | ||
| 3376 | try testArgs(u8, i5, -1); | ||
| 3377 | try testArgs(u8, i5, 0); | ||
| 3378 | try testArgs(u16, i5, -1 << 4); | ||
| 3379 | try testArgs(u16, i5, -1); | ||
| 3380 | try testArgs(u16, i5, 0); | ||
| 3381 | try testArgs(u32, i5, -1 << 4); | ||
| 3382 | try testArgs(u32, i5, -1); | ||
| 3383 | try testArgs(u32, i5, 0); | ||
| 3384 | try testArgs(u64, i5, -1 << 4); | ||
| 3385 | try testArgs(u64, i5, -1); | ||
| 3386 | try testArgs(u64, i5, 0); | ||
| 3387 | try testArgs(u128, i5, -1 << 4); | ||
| 3388 | try testArgs(u128, i5, -1); | ||
| 3389 | try testArgs(u128, i5, 0); | ||
| 3390 | try testArgs(u256, i5, -1 << 4); | ||
| 3391 | try testArgs(u256, i5, -1); | ||
| 3392 | try testArgs(u256, i5, 0); | ||
| 3393 | try testArgs(u512, i5, -1 << 4); | ||
| 3394 | try testArgs(u512, i5, -1); | ||
| 3395 | try testArgs(u512, i5, 0); | ||
| 3396 | try testArgs(u1024, i5, -1 << 4); | ||
| 3397 | try testArgs(u1024, i5, -1); | ||
| 3398 | try testArgs(u1024, i5, 0); | ||
| 3399 | try testArgs(i8, u5, 0); | ||
| 3400 | try testArgs(i8, u5, 1 << 0); | ||
| 3401 | try testArgs(i8, u5, 1 << 4); | ||
| 3402 | try testArgs(i16, u5, 0); | ||
| 3403 | try testArgs(i16, u5, 1 << 0); | ||
| 3404 | try testArgs(i16, u5, 1 << 4); | ||
| 3405 | try testArgs(i32, u5, 0); | ||
| 3406 | try testArgs(i32, u5, 1 << 0); | ||
| 3407 | try testArgs(i32, u5, 1 << 4); | ||
| 3408 | try testArgs(i64, u5, 0); | ||
| 3409 | try testArgs(i64, u5, 1 << 0); | ||
| 3410 | try testArgs(i64, u5, 1 << 4); | ||
| 3411 | try testArgs(i128, u5, 0); | ||
| 3412 | try testArgs(i128, u5, 1 << 0); | ||
| 3413 | try testArgs(i128, u5, 1 << 4); | ||
| 3414 | try testArgs(i256, u5, 0); | ||
| 3415 | try testArgs(i256, u5, 1 << 0); | ||
| 3416 | try testArgs(i256, u5, 1 << 4); | ||
| 3417 | try testArgs(i512, u5, 0); | ||
| 3418 | try testArgs(i512, u5, 1 << 0); | ||
| 3419 | try testArgs(i512, u5, 1 << 4); | ||
| 3420 | try testArgs(i1024, u5, 0); | ||
| 3421 | try testArgs(i1024, u5, 1 << 0); | ||
| 3422 | try testArgs(i1024, u5, 1 << 4); | ||
| 3423 | |||
| 3424 | try testArgs(u8, i7, -1 << 6); | ||
| 3425 | try testArgs(u8, i7, -1); | ||
| 3426 | try testArgs(u8, i7, 0); | ||
| 3427 | try testArgs(u16, i7, -1 << 6); | ||
| 3428 | try testArgs(u16, i7, -1); | ||
| 3429 | try testArgs(u16, i7, 0); | ||
| 3430 | try testArgs(u32, i7, -1 << 6); | ||
| 3431 | try testArgs(u32, i7, -1); | ||
| 3432 | try testArgs(u32, i7, 0); | ||
| 3433 | try testArgs(u64, i7, -1 << 6); | ||
| 3434 | try testArgs(u64, i7, -1); | ||
| 3435 | try testArgs(u64, i7, 0); | ||
| 3436 | try testArgs(u128, i7, -1 << 6); | ||
| 3437 | try testArgs(u128, i7, -1); | ||
| 3438 | try testArgs(u128, i7, 0); | ||
| 3439 | try testArgs(u256, i7, -1 << 6); | ||
| 3440 | try testArgs(u256, i7, -1); | ||
| 3441 | try testArgs(u256, i7, 0); | ||
| 3442 | try testArgs(u512, i7, -1 << 6); | ||
| 3443 | try testArgs(u512, i7, -1); | ||
| 3444 | try testArgs(u512, i7, 0); | ||
| 3445 | try testArgs(u1024, i7, -1 << 6); | ||
| 3446 | try testArgs(u1024, i7, -1); | ||
| 3447 | try testArgs(u1024, i7, 0); | ||
| 3448 | try testArgs(i8, u7, 0); | ||
| 3449 | try testArgs(i8, u7, 1 << 0); | ||
| 3450 | try testArgs(i8, u7, 1 << 6); | ||
| 3451 | try testArgs(i16, u7, 0); | ||
| 3452 | try testArgs(i16, u7, 1 << 0); | ||
| 3453 | try testArgs(i16, u7, 1 << 6); | ||
| 3454 | try testArgs(i32, u7, 0); | ||
| 3455 | try testArgs(i32, u7, 1 << 0); | ||
| 3456 | try testArgs(i32, u7, 1 << 6); | ||
| 3457 | try testArgs(i64, u7, 0); | ||
| 3458 | try testArgs(i64, u7, 1 << 0); | ||
| 3459 | try testArgs(i64, u7, 1 << 6); | ||
| 3460 | try testArgs(i128, u7, 0); | ||
| 3461 | try testArgs(i128, u7, 1 << 0); | ||
| 3462 | try testArgs(i128, u7, 1 << 6); | ||
| 3463 | try testArgs(i256, u7, 0); | ||
| 3464 | try testArgs(i256, u7, 1 << 0); | ||
| 3465 | try testArgs(i256, u7, 1 << 6); | ||
| 3466 | try testArgs(i512, u7, 0); | ||
| 3467 | try testArgs(i512, u7, 1 << 0); | ||
| 3468 | try testArgs(i512, u7, 1 << 6); | ||
| 3469 | try testArgs(i1024, u7, 0); | ||
| 3470 | try testArgs(i1024, u7, 1 << 0); | ||
| 3471 | try testArgs(i1024, u7, 1 << 6); | ||
| 3472 | |||
| 3473 | try testArgs(u8, i8, -1 << 7); | ||
| 3474 | try testArgs(u8, i8, -1); | ||
| 3475 | try testArgs(u8, i8, 0); | ||
| 3476 | try testArgs(u16, i8, -1 << 7); | ||
| 3477 | try testArgs(u16, i8, -1); | ||
| 3478 | try testArgs(u16, i8, 0); | ||
| 3479 | try testArgs(u32, i8, -1 << 7); | ||
| 3480 | try testArgs(u32, i8, -1); | ||
| 3481 | try testArgs(u32, i8, 0); | ||
| 3482 | try testArgs(u64, i8, -1 << 7); | ||
| 3483 | try testArgs(u64, i8, -1); | ||
| 3484 | try testArgs(u64, i8, 0); | ||
| 3485 | try testArgs(u128, i8, -1 << 7); | ||
| 3486 | try testArgs(u128, i8, -1); | ||
| 3487 | try testArgs(u128, i8, 0); | ||
| 3488 | try testArgs(u256, i8, -1 << 7); | ||
| 3489 | try testArgs(u256, i8, -1); | ||
| 3490 | try testArgs(u256, i8, 0); | ||
| 3491 | try testArgs(u512, i8, -1 << 7); | ||
| 3492 | try testArgs(u512, i8, -1); | ||
| 3493 | try testArgs(u512, i8, 0); | ||
| 3494 | try testArgs(u1024, i8, -1 << 7); | ||
| 3495 | try testArgs(u1024, i8, -1); | ||
| 3496 | try testArgs(u1024, i8, 0); | ||
| 3497 | try testArgs(i8, u8, 0); | ||
| 3498 | try testArgs(i8, u8, 1 << 0); | ||
| 3499 | try testArgs(i8, u8, 1 << 7); | ||
| 3500 | try testArgs(i16, u8, 0); | ||
| 3501 | try testArgs(i16, u8, 1 << 0); | ||
| 3502 | try testArgs(i16, u8, 1 << 7); | ||
| 3503 | try testArgs(i32, u8, 0); | ||
| 3504 | try testArgs(i32, u8, 1 << 0); | ||
| 3505 | try testArgs(i32, u8, 1 << 7); | ||
| 3506 | try testArgs(i64, u8, 0); | ||
| 3507 | try testArgs(i64, u8, 1 << 0); | ||
| 3508 | try testArgs(i64, u8, 1 << 7); | ||
| 3509 | try testArgs(i128, u8, 0); | ||
| 3510 | try testArgs(i128, u8, 1 << 0); | ||
| 3511 | try testArgs(i128, u8, 1 << 7); | ||
| 3512 | try testArgs(i256, u8, 0); | ||
| 3513 | try testArgs(i256, u8, 1 << 0); | ||
| 3514 | try testArgs(i256, u8, 1 << 7); | ||
| 3515 | try testArgs(i512, u8, 0); | ||
| 3516 | try testArgs(i512, u8, 1 << 0); | ||
| 3517 | try testArgs(i512, u8, 1 << 7); | ||
| 3518 | try testArgs(i1024, u8, 0); | ||
| 3519 | try testArgs(i1024, u8, 1 << 0); | ||
| 3520 | try testArgs(i1024, u8, 1 << 7); | ||
| 3521 | |||
| 3522 | try testArgs(u8, i9, -1 << 8); | ||
| 3523 | try testArgs(u8, i9, -1); | ||
| 3524 | try testArgs(u8, i9, 0); | ||
| 3525 | try testArgs(u16, i9, -1 << 8); | ||
| 3526 | try testArgs(u16, i9, -1); | ||
| 3527 | try testArgs(u16, i9, 0); | ||
| 3528 | try testArgs(u32, i9, -1 << 8); | ||
| 3529 | try testArgs(u32, i9, -1); | ||
| 3530 | try testArgs(u32, i9, 0); | ||
| 3531 | try testArgs(u64, i9, -1 << 8); | ||
| 3532 | try testArgs(u64, i9, -1); | ||
| 3533 | try testArgs(u64, i9, 0); | ||
| 3534 | try testArgs(u128, i9, -1 << 8); | ||
| 3535 | try testArgs(u128, i9, -1); | ||
| 3536 | try testArgs(u128, i9, 0); | ||
| 3537 | try testArgs(u256, i9, -1 << 8); | ||
| 3538 | try testArgs(u256, i9, -1); | ||
| 3539 | try testArgs(u256, i9, 0); | ||
| 3540 | try testArgs(u512, i9, -1 << 8); | ||
| 3541 | try testArgs(u512, i9, -1); | ||
| 3542 | try testArgs(u512, i9, 0); | ||
| 3543 | try testArgs(u1024, i9, -1 << 8); | ||
| 3544 | try testArgs(u1024, i9, -1); | ||
| 3545 | try testArgs(u1024, i9, 0); | ||
| 3546 | try testArgs(i8, u9, 0); | ||
| 3547 | try testArgs(i8, u9, 1 << 0); | ||
| 3548 | try testArgs(i8, u9, 1 << 8); | ||
| 3549 | try testArgs(i16, u9, 0); | ||
| 3550 | try testArgs(i16, u9, 1 << 0); | ||
| 3551 | try testArgs(i16, u9, 1 << 8); | ||
| 3552 | try testArgs(i32, u9, 0); | ||
| 3553 | try testArgs(i32, u9, 1 << 0); | ||
| 3554 | try testArgs(i32, u9, 1 << 8); | ||
| 3555 | try testArgs(i64, u9, 0); | ||
| 3556 | try testArgs(i64, u9, 1 << 0); | ||
| 3557 | try testArgs(i64, u9, 1 << 8); | ||
| 3558 | try testArgs(i128, u9, 0); | ||
| 3559 | try testArgs(i128, u9, 1 << 0); | ||
| 3560 | try testArgs(i128, u9, 1 << 8); | ||
| 3561 | try testArgs(i256, u9, 0); | ||
| 3562 | try testArgs(i256, u9, 1 << 0); | ||
| 3563 | try testArgs(i256, u9, 1 << 8); | ||
| 3564 | try testArgs(i512, u9, 0); | ||
| 3565 | try testArgs(i512, u9, 1 << 0); | ||
| 3566 | try testArgs(i512, u9, 1 << 8); | ||
| 3567 | try testArgs(i1024, u9, 0); | ||
| 3568 | try testArgs(i1024, u9, 1 << 0); | ||
| 3569 | try testArgs(i1024, u9, 1 << 8); | ||
| 3570 | |||
| 3571 | try testArgs(u8, i15, -1 << 14); | ||
| 3572 | try testArgs(u8, i15, -1); | ||
| 3573 | try testArgs(u8, i15, 0); | ||
| 3574 | try testArgs(u16, i15, -1 << 14); | ||
| 3575 | try testArgs(u16, i15, -1); | ||
| 3576 | try testArgs(u16, i15, 0); | ||
| 3577 | try testArgs(u32, i15, -1 << 14); | ||
| 3578 | try testArgs(u32, i15, -1); | ||
| 3579 | try testArgs(u32, i15, 0); | ||
| 3580 | try testArgs(u64, i15, -1 << 14); | ||
| 3581 | try testArgs(u64, i15, -1); | ||
| 3582 | try testArgs(u64, i15, 0); | ||
| 3583 | try testArgs(u128, i15, -1 << 14); | ||
| 3584 | try testArgs(u128, i15, -1); | ||
| 3585 | try testArgs(u128, i15, 0); | ||
| 3586 | try testArgs(u256, i15, -1 << 14); | ||
| 3587 | try testArgs(u256, i15, -1); | ||
| 3588 | try testArgs(u256, i15, 0); | ||
| 3589 | try testArgs(u512, i15, -1 << 14); | ||
| 3590 | try testArgs(u512, i15, -1); | ||
| 3591 | try testArgs(u512, i15, 0); | ||
| 3592 | try testArgs(u1024, i15, -1 << 14); | ||
| 3593 | try testArgs(u1024, i15, -1); | ||
| 3594 | try testArgs(u1024, i15, 0); | ||
| 3595 | try testArgs(i8, u15, 0); | ||
| 3596 | try testArgs(i8, u15, 1 << 0); | ||
| 3597 | try testArgs(i8, u15, 1 << 14); | ||
| 3598 | try testArgs(i16, u15, 0); | ||
| 3599 | try testArgs(i16, u15, 1 << 0); | ||
| 3600 | try testArgs(i16, u15, 1 << 14); | ||
| 3601 | try testArgs(i32, u15, 0); | ||
| 3602 | try testArgs(i32, u15, 1 << 0); | ||
| 3603 | try testArgs(i32, u15, 1 << 14); | ||
| 3604 | try testArgs(i64, u15, 0); | ||
| 3605 | try testArgs(i64, u15, 1 << 0); | ||
| 3606 | try testArgs(i64, u15, 1 << 14); | ||
| 3607 | try testArgs(i128, u15, 0); | ||
| 3608 | try testArgs(i128, u15, 1 << 0); | ||
| 3609 | try testArgs(i128, u15, 1 << 14); | ||
| 3610 | try testArgs(i256, u15, 0); | ||
| 3611 | try testArgs(i256, u15, 1 << 0); | ||
| 3612 | try testArgs(i256, u15, 1 << 14); | ||
| 3613 | try testArgs(i512, u15, 0); | ||
| 3614 | try testArgs(i512, u15, 1 << 0); | ||
| 3615 | try testArgs(i512, u15, 1 << 14); | ||
| 3616 | try testArgs(i1024, u15, 0); | ||
| 3617 | try testArgs(i1024, u15, 1 << 0); | ||
| 3618 | try testArgs(i1024, u15, 1 << 14); | ||
| 3619 | |||
| 3620 | try testArgs(u8, i16, -1 << 15); | ||
| 3621 | try testArgs(u8, i16, -1); | ||
| 3622 | try testArgs(u8, i16, 0); | ||
| 3623 | try testArgs(u16, i16, -1 << 15); | ||
| 3624 | try testArgs(u16, i16, -1); | ||
| 3625 | try testArgs(u16, i16, 0); | ||
| 3626 | try testArgs(u32, i16, -1 << 15); | ||
| 3627 | try testArgs(u32, i16, -1); | ||
| 3628 | try testArgs(u32, i16, 0); | ||
| 3629 | try testArgs(u64, i16, -1 << 15); | ||
| 3630 | try testArgs(u64, i16, -1); | ||
| 3631 | try testArgs(u64, i16, 0); | ||
| 3632 | try testArgs(u128, i16, -1 << 15); | ||
| 3633 | try testArgs(u128, i16, -1); | ||
| 3634 | try testArgs(u128, i16, 0); | ||
| 3635 | try testArgs(u256, i16, -1 << 15); | ||
| 3636 | try testArgs(u256, i16, -1); | ||
| 3637 | try testArgs(u256, i16, 0); | ||
| 3638 | try testArgs(u512, i16, -1 << 15); | ||
| 3639 | try testArgs(u512, i16, -1); | ||
| 3640 | try testArgs(u512, i16, 0); | ||
| 3641 | try testArgs(u1024, i16, -1 << 15); | ||
| 3642 | try testArgs(u1024, i16, -1); | ||
| 3643 | try testArgs(u1024, i16, 0); | ||
| 3644 | try testArgs(i8, u16, 0); | ||
| 3645 | try testArgs(i8, u16, 1 << 0); | ||
| 3646 | try testArgs(i8, u16, 1 << 15); | ||
| 3647 | try testArgs(i16, u16, 0); | ||
| 3648 | try testArgs(i16, u16, 1 << 0); | ||
| 3649 | try testArgs(i16, u16, 1 << 15); | ||
| 3650 | try testArgs(i32, u16, 0); | ||
| 3651 | try testArgs(i32, u16, 1 << 0); | ||
| 3652 | try testArgs(i32, u16, 1 << 15); | ||
| 3653 | try testArgs(i64, u16, 0); | ||
| 3654 | try testArgs(i64, u16, 1 << 0); | ||
| 3655 | try testArgs(i64, u16, 1 << 15); | ||
| 3656 | try testArgs(i128, u16, 0); | ||
| 3657 | try testArgs(i128, u16, 1 << 0); | ||
| 3658 | try testArgs(i128, u16, 1 << 15); | ||
| 3659 | try testArgs(i256, u16, 0); | ||
| 3660 | try testArgs(i256, u16, 1 << 0); | ||
| 3661 | try testArgs(i256, u16, 1 << 15); | ||
| 3662 | try testArgs(i512, u16, 0); | ||
| 3663 | try testArgs(i512, u16, 1 << 0); | ||
| 3664 | try testArgs(i512, u16, 1 << 15); | ||
| 3665 | try testArgs(i1024, u16, 0); | ||
| 3666 | try testArgs(i1024, u16, 1 << 0); | ||
| 3667 | try testArgs(i1024, u16, 1 << 15); | ||
| 3668 | |||
| 3669 | try testArgs(u8, i17, -1 << 16); | ||
| 3670 | try testArgs(u8, i17, -1); | ||
| 3671 | try testArgs(u8, i17, 0); | ||
| 3672 | try testArgs(u16, i17, -1 << 16); | ||
| 3673 | try testArgs(u16, i17, -1); | ||
| 3674 | try testArgs(u16, i17, 0); | ||
| 3675 | try testArgs(u32, i17, -1 << 16); | ||
| 3676 | try testArgs(u32, i17, -1); | ||
| 3677 | try testArgs(u32, i17, 0); | ||
| 3678 | try testArgs(u64, i17, -1 << 16); | ||
| 3679 | try testArgs(u64, i17, -1); | ||
| 3680 | try testArgs(u64, i17, 0); | ||
| 3681 | try testArgs(u128, i17, -1 << 16); | ||
| 3682 | try testArgs(u128, i17, -1); | ||
| 3683 | try testArgs(u128, i17, 0); | ||
| 3684 | try testArgs(u256, i17, -1 << 16); | ||
| 3685 | try testArgs(u256, i17, -1); | ||
| 3686 | try testArgs(u256, i17, 0); | ||
| 3687 | try testArgs(u512, i17, -1 << 16); | ||
| 3688 | try testArgs(u512, i17, -1); | ||
| 3689 | try testArgs(u512, i17, 0); | ||
| 3690 | try testArgs(u1024, i17, -1 << 16); | ||
| 3691 | try testArgs(u1024, i17, -1); | ||
| 3692 | try testArgs(u1024, i17, 0); | ||
| 3693 | try testArgs(i8, u17, 0); | ||
| 3694 | try testArgs(i8, u17, 1 << 0); | ||
| 3695 | try testArgs(i8, u17, 1 << 16); | ||
| 3696 | try testArgs(i16, u17, 0); | ||
| 3697 | try testArgs(i16, u17, 1 << 0); | ||
| 3698 | try testArgs(i16, u17, 1 << 16); | ||
| 3699 | try testArgs(i32, u17, 0); | ||
| 3700 | try testArgs(i32, u17, 1 << 0); | ||
| 3701 | try testArgs(i32, u17, 1 << 16); | ||
| 3702 | try testArgs(i64, u17, 0); | ||
| 3703 | try testArgs(i64, u17, 1 << 0); | ||
| 3704 | try testArgs(i64, u17, 1 << 16); | ||
| 3705 | try testArgs(i128, u17, 0); | ||
| 3706 | try testArgs(i128, u17, 1 << 0); | ||
| 3707 | try testArgs(i128, u17, 1 << 16); | ||
| 3708 | try testArgs(i256, u17, 0); | ||
| 3709 | try testArgs(i256, u17, 1 << 0); | ||
| 3710 | try testArgs(i256, u17, 1 << 16); | ||
| 3711 | try testArgs(i512, u17, 0); | ||
| 3712 | try testArgs(i512, u17, 1 << 0); | ||
| 3713 | try testArgs(i512, u17, 1 << 16); | ||
| 3714 | try testArgs(i1024, u17, 0); | ||
| 3715 | try testArgs(i1024, u17, 1 << 0); | ||
| 3716 | try testArgs(i1024, u17, 1 << 16); | ||
| 3717 | |||
| 3718 | try testArgs(u8, i31, -1 << 30); | ||
| 3719 | try testArgs(u8, i31, -1); | ||
| 3720 | try testArgs(u8, i31, 0); | ||
| 3721 | try testArgs(u16, i31, -1 << 30); | ||
| 3722 | try testArgs(u16, i31, -1); | ||
| 3723 | try testArgs(u16, i31, 0); | ||
| 3724 | try testArgs(u32, i31, -1 << 30); | ||
| 3725 | try testArgs(u32, i31, -1); | ||
| 3726 | try testArgs(u32, i31, 0); | ||
| 3727 | try testArgs(u64, i31, -1 << 30); | ||
| 3728 | try testArgs(u64, i31, -1); | ||
| 3729 | try testArgs(u64, i31, 0); | ||
| 3730 | try testArgs(u128, i31, -1 << 30); | ||
| 3731 | try testArgs(u128, i31, -1); | ||
| 3732 | try testArgs(u128, i31, 0); | ||
| 3733 | try testArgs(u256, i31, -1 << 30); | ||
| 3734 | try testArgs(u256, i31, -1); | ||
| 3735 | try testArgs(u256, i31, 0); | ||
| 3736 | try testArgs(u512, i31, -1 << 30); | ||
| 3737 | try testArgs(u512, i31, -1); | ||
| 3738 | try testArgs(u512, i31, 0); | ||
| 3739 | try testArgs(u1024, i31, -1 << 30); | ||
| 3740 | try testArgs(u1024, i31, -1); | ||
| 3741 | try testArgs(u1024, i31, 0); | ||
| 3742 | try testArgs(i8, u31, 0); | ||
| 3743 | try testArgs(i8, u31, 1 << 0); | ||
| 3744 | try testArgs(i8, u31, 1 << 30); | ||
| 3745 | try testArgs(i16, u31, 0); | ||
| 3746 | try testArgs(i16, u31, 1 << 0); | ||
| 3747 | try testArgs(i16, u31, 1 << 30); | ||
| 3748 | try testArgs(i32, u31, 0); | ||
| 3749 | try testArgs(i32, u31, 1 << 0); | ||
| 3750 | try testArgs(i32, u31, 1 << 30); | ||
| 3751 | try testArgs(i64, u31, 0); | ||
| 3752 | try testArgs(i64, u31, 1 << 0); | ||
| 3753 | try testArgs(i64, u31, 1 << 30); | ||
| 3754 | try testArgs(i128, u31, 0); | ||
| 3755 | try testArgs(i128, u31, 1 << 0); | ||
| 3756 | try testArgs(i128, u31, 1 << 30); | ||
| 3757 | try testArgs(i256, u31, 0); | ||
| 3758 | try testArgs(i256, u31, 1 << 0); | ||
| 3759 | try testArgs(i256, u31, 1 << 30); | ||
| 3760 | try testArgs(i512, u31, 0); | ||
| 3761 | try testArgs(i512, u31, 1 << 0); | ||
| 3762 | try testArgs(i512, u31, 1 << 30); | ||
| 3763 | try testArgs(i1024, u31, 0); | ||
| 3764 | try testArgs(i1024, u31, 1 << 0); | ||
| 3765 | try testArgs(i1024, u31, 1 << 30); | ||
| 3766 | |||
| 3767 | try testArgs(u8, i32, -1 << 31); | ||
| 3768 | try testArgs(u8, i32, -1); | ||
| 3769 | try testArgs(u8, i32, 0); | ||
| 3770 | try testArgs(u16, i32, -1 << 31); | ||
| 3771 | try testArgs(u16, i32, -1); | ||
| 3772 | try testArgs(u16, i32, 0); | ||
| 3773 | try testArgs(u32, i32, -1 << 31); | ||
| 3774 | try testArgs(u32, i32, -1); | ||
| 3775 | try testArgs(u32, i32, 0); | ||
| 3776 | try testArgs(u64, i32, -1 << 31); | ||
| 3777 | try testArgs(u64, i32, -1); | ||
| 3778 | try testArgs(u64, i32, 0); | ||
| 3779 | try testArgs(u128, i32, -1 << 31); | ||
| 3780 | try testArgs(u128, i32, -1); | ||
| 3781 | try testArgs(u128, i32, 0); | ||
| 3782 | try testArgs(u256, i32, -1 << 31); | ||
| 3783 | try testArgs(u256, i32, -1); | ||
| 3784 | try testArgs(u256, i32, 0); | ||
| 3785 | try testArgs(u512, i32, -1 << 31); | ||
| 3786 | try testArgs(u512, i32, -1); | ||
| 3787 | try testArgs(u512, i32, 0); | ||
| 3788 | try testArgs(u1024, i32, -1 << 31); | ||
| 3789 | try testArgs(u1024, i32, -1); | ||
| 3790 | try testArgs(u1024, i32, 0); | ||
| 3791 | try testArgs(i8, u32, 0); | ||
| 3792 | try testArgs(i8, u32, 1 << 0); | ||
| 3793 | try testArgs(i8, u32, 1 << 31); | ||
| 3794 | try testArgs(i16, u32, 0); | ||
| 3795 | try testArgs(i16, u32, 1 << 0); | ||
| 3796 | try testArgs(i16, u32, 1 << 31); | ||
| 3797 | try testArgs(i32, u32, 0); | ||
| 3798 | try testArgs(i32, u32, 1 << 0); | ||
| 3799 | try testArgs(i32, u32, 1 << 31); | ||
| 3800 | try testArgs(i64, u32, 0); | ||
| 3801 | try testArgs(i64, u32, 1 << 0); | ||
| 3802 | try testArgs(i64, u32, 1 << 31); | ||
| 3803 | try testArgs(i128, u32, 0); | ||
| 3804 | try testArgs(i128, u32, 1 << 0); | ||
| 3805 | try testArgs(i128, u32, 1 << 31); | ||
| 3806 | try testArgs(i256, u32, 0); | ||
| 3807 | try testArgs(i256, u32, 1 << 0); | ||
| 3808 | try testArgs(i256, u32, 1 << 31); | ||
| 3809 | try testArgs(i512, u32, 0); | ||
| 3810 | try testArgs(i512, u32, 1 << 0); | ||
| 3811 | try testArgs(i512, u32, 1 << 31); | ||
| 3812 | try testArgs(i1024, u32, 0); | ||
| 3813 | try testArgs(i1024, u32, 1 << 0); | ||
| 3814 | try testArgs(i1024, u32, 1 << 31); | ||
| 3815 | |||
| 3816 | try testArgs(u8, i33, -1 << 32); | ||
| 3817 | try testArgs(u8, i33, -1); | ||
| 3818 | try testArgs(u8, i33, 0); | ||
| 3819 | try testArgs(u16, i33, -1 << 32); | ||
| 3820 | try testArgs(u16, i33, -1); | ||
| 3821 | try testArgs(u16, i33, 0); | ||
| 3822 | try testArgs(u32, i33, -1 << 32); | ||
| 3823 | try testArgs(u32, i33, -1); | ||
| 3824 | try testArgs(u32, i33, 0); | ||
| 3825 | try testArgs(u64, i33, -1 << 32); | ||
| 3826 | try testArgs(u64, i33, -1); | ||
| 3827 | try testArgs(u64, i33, 0); | ||
| 3828 | try testArgs(u128, i33, -1 << 32); | ||
| 3829 | try testArgs(u128, i33, -1); | ||
| 3830 | try testArgs(u128, i33, 0); | ||
| 3831 | try testArgs(u256, i33, -1 << 32); | ||
| 3832 | try testArgs(u256, i33, -1); | ||
| 3833 | try testArgs(u256, i33, 0); | ||
| 3834 | try testArgs(u512, i33, -1 << 32); | ||
| 3835 | try testArgs(u512, i33, -1); | ||
| 3836 | try testArgs(u512, i33, 0); | ||
| 3837 | try testArgs(u1024, i33, -1 << 32); | ||
| 3838 | try testArgs(u1024, i33, -1); | ||
| 3839 | try testArgs(u1024, i33, 0); | ||
| 3840 | try testArgs(i8, u33, 0); | ||
| 3841 | try testArgs(i8, u33, 1 << 0); | ||
| 3842 | try testArgs(i8, u33, 1 << 32); | ||
| 3843 | try testArgs(i16, u33, 0); | ||
| 3844 | try testArgs(i16, u33, 1 << 0); | ||
| 3845 | try testArgs(i16, u33, 1 << 32); | ||
| 3846 | try testArgs(i32, u33, 0); | ||
| 3847 | try testArgs(i32, u33, 1 << 0); | ||
| 3848 | try testArgs(i32, u33, 1 << 32); | ||
| 3849 | try testArgs(i64, u33, 0); | ||
| 3850 | try testArgs(i64, u33, 1 << 0); | ||
| 3851 | try testArgs(i64, u33, 1 << 32); | ||
| 3852 | try testArgs(i128, u33, 0); | ||
| 3853 | try testArgs(i128, u33, 1 << 0); | ||
| 3854 | try testArgs(i128, u33, 1 << 32); | ||
| 3855 | try testArgs(i256, u33, 0); | ||
| 3856 | try testArgs(i256, u33, 1 << 0); | ||
| 3857 | try testArgs(i256, u33, 1 << 32); | ||
| 3858 | try testArgs(i512, u33, 0); | ||
| 3859 | try testArgs(i512, u33, 1 << 0); | ||
| 3860 | try testArgs(i512, u33, 1 << 32); | ||
| 3861 | try testArgs(i1024, u33, 0); | ||
| 3862 | try testArgs(i1024, u33, 1 << 0); | ||
| 3863 | try testArgs(i1024, u33, 1 << 32); | ||
| 3864 | |||
| 3865 | try testArgs(u8, i63, -1 << 62); | ||
| 3866 | try testArgs(u8, i63, -1); | ||
| 3867 | try testArgs(u8, i63, 0); | ||
| 3868 | try testArgs(u16, i63, -1 << 62); | ||
| 3869 | try testArgs(u16, i63, -1); | ||
| 3870 | try testArgs(u16, i63, 0); | ||
| 3871 | try testArgs(u32, i63, -1 << 62); | ||
| 3872 | try testArgs(u32, i63, -1); | ||
| 3873 | try testArgs(u32, i63, 0); | ||
| 3874 | try testArgs(u64, i63, -1 << 62); | ||
| 3875 | try testArgs(u64, i63, -1); | ||
| 3876 | try testArgs(u64, i63, 0); | ||
| 3877 | try testArgs(u128, i63, -1 << 62); | ||
| 3878 | try testArgs(u128, i63, -1); | ||
| 3879 | try testArgs(u128, i63, 0); | ||
| 3880 | try testArgs(u256, i63, -1 << 62); | ||
| 3881 | try testArgs(u256, i63, -1); | ||
| 3882 | try testArgs(u256, i63, 0); | ||
| 3883 | try testArgs(u512, i63, -1 << 62); | ||
| 3884 | try testArgs(u512, i63, -1); | ||
| 3885 | try testArgs(u512, i63, 0); | ||
| 3886 | try testArgs(u1024, i63, -1 << 62); | ||
| 3887 | try testArgs(u1024, i63, -1); | ||
| 3888 | try testArgs(u1024, i63, 0); | ||
| 3889 | try testArgs(i8, u63, 0); | ||
| 3890 | try testArgs(i8, u63, 1 << 0); | ||
| 3891 | try testArgs(i8, u63, 1 << 62); | ||
| 3892 | try testArgs(i16, u63, 0); | ||
| 3893 | try testArgs(i16, u63, 1 << 0); | ||
| 3894 | try testArgs(i16, u63, 1 << 62); | ||
| 3895 | try testArgs(i32, u63, 0); | ||
| 3896 | try testArgs(i32, u63, 1 << 0); | ||
| 3897 | try testArgs(i32, u63, 1 << 62); | ||
| 3898 | try testArgs(i64, u63, 0); | ||
| 3899 | try testArgs(i64, u63, 1 << 0); | ||
| 3900 | try testArgs(i64, u63, 1 << 62); | ||
| 3901 | try testArgs(i128, u63, 0); | ||
| 3902 | try testArgs(i128, u63, 1 << 0); | ||
| 3903 | try testArgs(i128, u63, 1 << 62); | ||
| 3904 | try testArgs(i256, u63, 0); | ||
| 3905 | try testArgs(i256, u63, 1 << 0); | ||
| 3906 | try testArgs(i256, u63, 1 << 62); | ||
| 3907 | try testArgs(i512, u63, 0); | ||
| 3908 | try testArgs(i512, u63, 1 << 0); | ||
| 3909 | try testArgs(i512, u63, 1 << 62); | ||
| 3910 | try testArgs(i1024, u63, 0); | ||
| 3911 | try testArgs(i1024, u63, 1 << 0); | ||
| 3912 | try testArgs(i1024, u63, 1 << 62); | ||
| 3913 | |||
| 3914 | try testArgs(u8, i64, -1 << 63); | ||
| 3915 | try testArgs(u8, i64, -1); | ||
| 3916 | try testArgs(u8, i64, 0); | ||
| 3917 | try testArgs(u16, i64, -1 << 63); | ||
| 3918 | try testArgs(u16, i64, -1); | ||
| 3919 | try testArgs(u16, i64, 0); | ||
| 3920 | try testArgs(u32, i64, -1 << 63); | ||
| 3921 | try testArgs(u32, i64, -1); | ||
| 3922 | try testArgs(u32, i64, 0); | ||
| 3923 | try testArgs(u64, i64, -1 << 63); | ||
| 3924 | try testArgs(u64, i64, -1); | ||
| 3925 | try testArgs(u64, i64, 0); | ||
| 3926 | try testArgs(u128, i64, -1 << 63); | ||
| 3927 | try testArgs(u128, i64, -1); | ||
| 3928 | try testArgs(u128, i64, 0); | ||
| 3929 | try testArgs(u256, i64, -1 << 63); | ||
| 3930 | try testArgs(u256, i64, -1); | ||
| 3931 | try testArgs(u256, i64, 0); | ||
| 3932 | try testArgs(u512, i64, -1 << 63); | ||
| 3933 | try testArgs(u512, i64, -1); | ||
| 3934 | try testArgs(u512, i64, 0); | ||
| 3935 | try testArgs(u1024, i64, -1 << 63); | ||
| 3936 | try testArgs(u1024, i64, -1); | ||
| 3937 | try testArgs(u1024, i64, 0); | ||
| 3938 | try testArgs(i8, u64, 0); | ||
| 3939 | try testArgs(i8, u64, 1 << 0); | ||
| 3940 | try testArgs(i8, u64, 1 << 63); | ||
| 3941 | try testArgs(i16, u64, 0); | ||
| 3942 | try testArgs(i16, u64, 1 << 0); | ||
| 3943 | try testArgs(i16, u64, 1 << 63); | ||
| 3944 | try testArgs(i32, u64, 0); | ||
| 3945 | try testArgs(i32, u64, 1 << 0); | ||
| 3946 | try testArgs(i32, u64, 1 << 63); | ||
| 3947 | try testArgs(i64, u64, 0); | ||
| 3948 | try testArgs(i64, u64, 1 << 0); | ||
| 3949 | try testArgs(i64, u64, 1 << 63); | ||
| 3950 | try testArgs(i128, u64, 0); | ||
| 3951 | try testArgs(i128, u64, 1 << 0); | ||
| 3952 | try testArgs(i128, u64, 1 << 63); | ||
| 3953 | try testArgs(i256, u64, 0); | ||
| 3954 | try testArgs(i256, u64, 1 << 0); | ||
| 3955 | try testArgs(i256, u64, 1 << 63); | ||
| 3956 | try testArgs(i512, u64, 0); | ||
| 3957 | try testArgs(i512, u64, 1 << 0); | ||
| 3958 | try testArgs(i512, u64, 1 << 63); | ||
| 3959 | try testArgs(i1024, u64, 0); | ||
| 3960 | try testArgs(i1024, u64, 1 << 0); | ||
| 3961 | try testArgs(i1024, u64, 1 << 63); | ||
| 3962 | |||
| 3963 | try testArgs(u8, i65, -1 << 64); | ||
| 3964 | try testArgs(u8, i65, -1); | ||
| 3965 | try testArgs(u8, i65, 0); | ||
| 3966 | try testArgs(u16, i65, -1 << 64); | ||
| 3967 | try testArgs(u16, i65, -1); | ||
| 3968 | try testArgs(u16, i65, 0); | ||
| 3969 | try testArgs(u32, i65, -1 << 64); | ||
| 3970 | try testArgs(u32, i65, -1); | ||
| 3971 | try testArgs(u32, i65, 0); | ||
| 3972 | try testArgs(u64, i65, -1 << 64); | ||
| 3973 | try testArgs(u64, i65, -1); | ||
| 3974 | try testArgs(u64, i65, 0); | ||
| 3975 | try testArgs(u128, i65, -1 << 64); | ||
| 3976 | try testArgs(u128, i65, -1); | ||
| 3977 | try testArgs(u128, i65, 0); | ||
| 3978 | try testArgs(u256, i65, -1 << 64); | ||
| 3979 | try testArgs(u256, i65, -1); | ||
| 3980 | try testArgs(u256, i65, 0); | ||
| 3981 | try testArgs(u512, i65, -1 << 64); | ||
| 3982 | try testArgs(u512, i65, -1); | ||
| 3983 | try testArgs(u512, i65, 0); | ||
| 3984 | try testArgs(u1024, i65, -1 << 64); | ||
| 3985 | try testArgs(u1024, i65, -1); | ||
| 3986 | try testArgs(u1024, i65, 0); | ||
| 3987 | try testArgs(i8, u65, 0); | ||
| 3988 | try testArgs(i8, u65, 1 << 0); | ||
| 3989 | try testArgs(i8, u65, 1 << 64); | ||
| 3990 | try testArgs(i16, u65, 0); | ||
| 3991 | try testArgs(i16, u65, 1 << 0); | ||
| 3992 | try testArgs(i16, u65, 1 << 64); | ||
| 3993 | try testArgs(i32, u65, 0); | ||
| 3994 | try testArgs(i32, u65, 1 << 0); | ||
| 3995 | try testArgs(i32, u65, 1 << 64); | ||
| 3996 | try testArgs(i64, u65, 0); | ||
| 3997 | try testArgs(i64, u65, 1 << 0); | ||
| 3998 | try testArgs(i64, u65, 1 << 64); | ||
| 3999 | try testArgs(i128, u65, 0); | ||
| 4000 | try testArgs(i128, u65, 1 << 0); | ||
| 4001 | try testArgs(i128, u65, 1 << 64); | ||
| 4002 | try testArgs(i256, u65, 0); | ||
| 4003 | try testArgs(i256, u65, 1 << 0); | ||
| 4004 | try testArgs(i256, u65, 1 << 64); | ||
| 4005 | try testArgs(i512, u65, 0); | ||
| 4006 | try testArgs(i512, u65, 1 << 0); | ||
| 4007 | try testArgs(i512, u65, 1 << 64); | ||
| 4008 | try testArgs(i1024, u65, 0); | ||
| 4009 | try testArgs(i1024, u65, 1 << 0); | ||
| 4010 | try testArgs(i1024, u65, 1 << 64); | ||
| 4011 | |||
| 4012 | try testArgs(u8, i95, -1 << 94); | ||
| 4013 | try testArgs(u8, i95, -1); | ||
| 4014 | try testArgs(u8, i95, 0); | ||
| 4015 | try testArgs(u16, i95, -1 << 94); | ||
| 4016 | try testArgs(u16, i95, -1); | ||
| 4017 | try testArgs(u16, i95, 0); | ||
| 4018 | try testArgs(u32, i95, -1 << 94); | ||
| 4019 | try testArgs(u32, i95, -1); | ||
| 4020 | try testArgs(u32, i95, 0); | ||
| 4021 | try testArgs(u64, i95, -1 << 94); | ||
| 4022 | try testArgs(u64, i95, -1); | ||
| 4023 | try testArgs(u64, i95, 0); | ||
| 4024 | try testArgs(u128, i95, -1 << 94); | ||
| 4025 | try testArgs(u128, i95, -1); | ||
| 4026 | try testArgs(u128, i95, 0); | ||
| 4027 | try testArgs(u256, i95, -1 << 94); | ||
| 4028 | try testArgs(u256, i95, -1); | ||
| 4029 | try testArgs(u256, i95, 0); | ||
| 4030 | try testArgs(u512, i95, -1 << 94); | ||
| 4031 | try testArgs(u512, i95, -1); | ||
| 4032 | try testArgs(u512, i95, 0); | ||
| 4033 | try testArgs(u1024, i95, -1 << 94); | ||
| 4034 | try testArgs(u1024, i95, -1); | ||
| 4035 | try testArgs(u1024, i95, 0); | ||
| 4036 | try testArgs(i8, u95, 0); | ||
| 4037 | try testArgs(i8, u95, 1 << 0); | ||
| 4038 | try testArgs(i8, u95, 1 << 94); | ||
| 4039 | try testArgs(i16, u95, 0); | ||
| 4040 | try testArgs(i16, u95, 1 << 0); | ||
| 4041 | try testArgs(i16, u95, 1 << 94); | ||
| 4042 | try testArgs(i32, u95, 0); | ||
| 4043 | try testArgs(i32, u95, 1 << 0); | ||
| 4044 | try testArgs(i32, u95, 1 << 94); | ||
| 4045 | try testArgs(i64, u95, 0); | ||
| 4046 | try testArgs(i64, u95, 1 << 0); | ||
| 4047 | try testArgs(i64, u95, 1 << 94); | ||
| 4048 | try testArgs(i128, u95, 0); | ||
| 4049 | try testArgs(i128, u95, 1 << 0); | ||
| 4050 | try testArgs(i128, u95, 1 << 94); | ||
| 4051 | try testArgs(i256, u95, 0); | ||
| 4052 | try testArgs(i256, u95, 1 << 0); | ||
| 4053 | try testArgs(i256, u95, 1 << 94); | ||
| 4054 | try testArgs(i512, u95, 0); | ||
| 4055 | try testArgs(i512, u95, 1 << 0); | ||
| 4056 | try testArgs(i512, u95, 1 << 94); | ||
| 4057 | try testArgs(i1024, u95, 0); | ||
| 4058 | try testArgs(i1024, u95, 1 << 0); | ||
| 4059 | try testArgs(i1024, u95, 1 << 94); | ||
| 4060 | |||
| 4061 | try testArgs(u8, i96, -1 << 95); | ||
| 4062 | try testArgs(u8, i96, -1); | ||
| 4063 | try testArgs(u8, i96, 0); | ||
| 4064 | try testArgs(u16, i96, -1 << 95); | ||
| 4065 | try testArgs(u16, i96, -1); | ||
| 4066 | try testArgs(u16, i96, 0); | ||
| 4067 | try testArgs(u32, i96, -1 << 95); | ||
| 4068 | try testArgs(u32, i96, -1); | ||
| 4069 | try testArgs(u32, i96, 0); | ||
| 4070 | try testArgs(u64, i96, -1 << 95); | ||
| 4071 | try testArgs(u64, i96, -1); | ||
| 4072 | try testArgs(u64, i96, 0); | ||
| 4073 | try testArgs(u128, i96, -1 << 95); | ||
| 4074 | try testArgs(u128, i96, -1); | ||
| 4075 | try testArgs(u128, i96, 0); | ||
| 4076 | try testArgs(u256, i96, -1 << 95); | ||
| 4077 | try testArgs(u256, i96, -1); | ||
| 4078 | try testArgs(u256, i96, 0); | ||
| 4079 | try testArgs(u512, i96, -1 << 95); | ||
| 4080 | try testArgs(u512, i96, -1); | ||
| 4081 | try testArgs(u512, i96, 0); | ||
| 4082 | try testArgs(u1024, i96, -1 << 95); | ||
| 4083 | try testArgs(u1024, i96, -1); | ||
| 4084 | try testArgs(u1024, i96, 0); | ||
| 4085 | try testArgs(i8, u96, 0); | ||
| 4086 | try testArgs(i8, u96, 1 << 0); | ||
| 4087 | try testArgs(i8, u96, 1 << 95); | ||
| 4088 | try testArgs(i16, u96, 0); | ||
| 4089 | try testArgs(i16, u96, 1 << 0); | ||
| 4090 | try testArgs(i16, u96, 1 << 95); | ||
| 4091 | try testArgs(i32, u96, 0); | ||
| 4092 | try testArgs(i32, u96, 1 << 0); | ||
| 4093 | try testArgs(i32, u96, 1 << 95); | ||
| 4094 | try testArgs(i64, u96, 0); | ||
| 4095 | try testArgs(i64, u96, 1 << 0); | ||
| 4096 | try testArgs(i64, u96, 1 << 95); | ||
| 4097 | try testArgs(i128, u96, 0); | ||
| 4098 | try testArgs(i128, u96, 1 << 0); | ||
| 4099 | try testArgs(i128, u96, 1 << 95); | ||
| 4100 | try testArgs(i256, u96, 0); | ||
| 4101 | try testArgs(i256, u96, 1 << 0); | ||
| 4102 | try testArgs(i256, u96, 1 << 95); | ||
| 4103 | try testArgs(i512, u96, 0); | ||
| 4104 | try testArgs(i512, u96, 1 << 0); | ||
| 4105 | try testArgs(i512, u96, 1 << 95); | ||
| 4106 | try testArgs(i1024, u96, 0); | ||
| 4107 | try testArgs(i1024, u96, 1 << 0); | ||
| 4108 | try testArgs(i1024, u96, 1 << 95); | ||
| 4109 | |||
| 4110 | try testArgs(u8, i97, -1 << 96); | ||
| 4111 | try testArgs(u8, i97, -1); | ||
| 4112 | try testArgs(u8, i97, 0); | ||
| 4113 | try testArgs(u16, i97, -1 << 96); | ||
| 4114 | try testArgs(u16, i97, -1); | ||
| 4115 | try testArgs(u16, i97, 0); | ||
| 4116 | try testArgs(u32, i97, -1 << 96); | ||
| 4117 | try testArgs(u32, i97, -1); | ||
| 4118 | try testArgs(u32, i97, 0); | ||
| 4119 | try testArgs(u64, i97, -1 << 96); | ||
| 4120 | try testArgs(u64, i97, -1); | ||
| 4121 | try testArgs(u64, i97, 0); | ||
| 4122 | try testArgs(u128, i97, -1 << 96); | ||
| 4123 | try testArgs(u128, i97, -1); | ||
| 4124 | try testArgs(u128, i97, 0); | ||
| 4125 | try testArgs(u256, i97, -1 << 96); | ||
| 4126 | try testArgs(u256, i97, -1); | ||
| 4127 | try testArgs(u256, i97, 0); | ||
| 4128 | try testArgs(u512, i97, -1 << 96); | ||
| 4129 | try testArgs(u512, i97, -1); | ||
| 4130 | try testArgs(u512, i97, 0); | ||
| 4131 | try testArgs(u1024, i97, -1 << 96); | ||
| 4132 | try testArgs(u1024, i97, -1); | ||
| 4133 | try testArgs(u1024, i97, 0); | ||
| 4134 | try testArgs(i8, u97, 0); | ||
| 4135 | try testArgs(i8, u97, 1 << 0); | ||
| 4136 | try testArgs(i8, u97, 1 << 96); | ||
| 4137 | try testArgs(i16, u97, 0); | ||
| 4138 | try testArgs(i16, u97, 1 << 0); | ||
| 4139 | try testArgs(i16, u97, 1 << 96); | ||
| 4140 | try testArgs(i32, u97, 0); | ||
| 4141 | try testArgs(i32, u97, 1 << 0); | ||
| 4142 | try testArgs(i32, u97, 1 << 96); | ||
| 4143 | try testArgs(i64, u97, 0); | ||
| 4144 | try testArgs(i64, u97, 1 << 0); | ||
| 4145 | try testArgs(i64, u97, 1 << 96); | ||
| 4146 | try testArgs(i128, u97, 0); | ||
| 4147 | try testArgs(i128, u97, 1 << 0); | ||
| 4148 | try testArgs(i128, u97, 1 << 96); | ||
| 4149 | try testArgs(i256, u97, 0); | ||
| 4150 | try testArgs(i256, u97, 1 << 0); | ||
| 4151 | try testArgs(i256, u97, 1 << 96); | ||
| 4152 | try testArgs(i512, u97, 0); | ||
| 4153 | try testArgs(i512, u97, 1 << 0); | ||
| 4154 | try testArgs(i512, u97, 1 << 96); | ||
| 4155 | try testArgs(i1024, u97, 0); | ||
| 4156 | try testArgs(i1024, u97, 1 << 0); | ||
| 4157 | try testArgs(i1024, u97, 1 << 96); | ||
| 4158 | |||
| 4159 | try testArgs(u8, i127, -1 << 126); | ||
| 4160 | try testArgs(u8, i127, -1); | ||
| 4161 | try testArgs(u8, i127, 0); | ||
| 4162 | try testArgs(u16, i127, -1 << 126); | ||
| 4163 | try testArgs(u16, i127, -1); | ||
| 4164 | try testArgs(u16, i127, 0); | ||
| 4165 | try testArgs(u32, i127, -1 << 126); | ||
| 4166 | try testArgs(u32, i127, -1); | ||
| 4167 | try testArgs(u32, i127, 0); | ||
| 4168 | try testArgs(u64, i127, -1 << 126); | ||
| 4169 | try testArgs(u64, i127, -1); | ||
| 4170 | try testArgs(u64, i127, 0); | ||
| 4171 | try testArgs(u128, i127, -1 << 126); | ||
| 4172 | try testArgs(u128, i127, -1); | ||
| 4173 | try testArgs(u128, i127, 0); | ||
| 4174 | try testArgs(u256, i127, -1 << 126); | ||
| 4175 | try testArgs(u256, i127, -1); | ||
| 4176 | try testArgs(u256, i127, 0); | ||
| 4177 | try testArgs(u512, i127, -1 << 126); | ||
| 4178 | try testArgs(u512, i127, -1); | ||
| 4179 | try testArgs(u512, i127, 0); | ||
| 4180 | try testArgs(u1024, i127, -1 << 126); | ||
| 4181 | try testArgs(u1024, i127, -1); | ||
| 4182 | try testArgs(u1024, i127, 0); | ||
| 4183 | try testArgs(i8, u127, 0); | ||
| 4184 | try testArgs(i8, u127, 1 << 0); | ||
| 4185 | try testArgs(i8, u127, 1 << 126); | ||
| 4186 | try testArgs(i16, u127, 0); | ||
| 4187 | try testArgs(i16, u127, 1 << 0); | ||
| 4188 | try testArgs(i16, u127, 1 << 126); | ||
| 4189 | try testArgs(i32, u127, 0); | ||
| 4190 | try testArgs(i32, u127, 1 << 0); | ||
| 4191 | try testArgs(i32, u127, 1 << 126); | ||
| 4192 | try testArgs(i64, u127, 0); | ||
| 4193 | try testArgs(i64, u127, 1 << 0); | ||
| 4194 | try testArgs(i64, u127, 1 << 126); | ||
| 4195 | try testArgs(i128, u127, 0); | ||
| 4196 | try testArgs(i128, u127, 1 << 0); | ||
| 4197 | try testArgs(i128, u127, 1 << 126); | ||
| 4198 | try testArgs(i256, u127, 0); | ||
| 4199 | try testArgs(i256, u127, 1 << 0); | ||
| 4200 | try testArgs(i256, u127, 1 << 126); | ||
| 4201 | try testArgs(i512, u127, 0); | ||
| 4202 | try testArgs(i512, u127, 1 << 0); | ||
| 4203 | try testArgs(i512, u127, 1 << 126); | ||
| 4204 | try testArgs(i1024, u127, 0); | ||
| 4205 | try testArgs(i1024, u127, 1 << 0); | ||
| 4206 | try testArgs(i1024, u127, 1 << 126); | ||
| 4207 | |||
| 4208 | try testArgs(u8, i128, -1 << 127); | ||
| 4209 | try testArgs(u8, i128, -1); | ||
| 4210 | try testArgs(u8, i128, 0); | ||
| 4211 | try testArgs(u16, i128, -1 << 127); | ||
| 4212 | try testArgs(u16, i128, -1); | ||
| 4213 | try testArgs(u16, i128, 0); | ||
| 4214 | try testArgs(u32, i128, -1 << 127); | ||
| 4215 | try testArgs(u32, i128, -1); | ||
| 4216 | try testArgs(u32, i128, 0); | ||
| 4217 | try testArgs(u64, i128, -1 << 127); | ||
| 4218 | try testArgs(u64, i128, -1); | ||
| 4219 | try testArgs(u64, i128, 0); | ||
| 4220 | try testArgs(u128, i128, -1 << 127); | ||
| 4221 | try testArgs(u128, i128, -1); | ||
| 4222 | try testArgs(u128, i128, 0); | ||
| 4223 | try testArgs(u256, i128, -1 << 127); | ||
| 4224 | try testArgs(u256, i128, -1); | ||
| 4225 | try testArgs(u256, i128, 0); | ||
| 4226 | try testArgs(u512, i128, -1 << 127); | ||
| 4227 | try testArgs(u512, i128, -1); | ||
| 4228 | try testArgs(u512, i128, 0); | ||
| 4229 | try testArgs(u1024, i128, -1 << 127); | ||
| 4230 | try testArgs(u1024, i128, -1); | ||
| 4231 | try testArgs(u1024, i128, 0); | ||
| 4232 | try testArgs(i8, u128, 0); | ||
| 4233 | try testArgs(i8, u128, 1 << 0); | ||
| 4234 | try testArgs(i8, u128, 1 << 127); | ||
| 4235 | try testArgs(i16, u128, 0); | ||
| 4236 | try testArgs(i16, u128, 1 << 0); | ||
| 4237 | try testArgs(i16, u128, 1 << 127); | ||
| 4238 | try testArgs(i32, u128, 0); | ||
| 4239 | try testArgs(i32, u128, 1 << 0); | ||
| 4240 | try testArgs(i32, u128, 1 << 127); | ||
| 4241 | try testArgs(i64, u128, 0); | ||
| 4242 | try testArgs(i64, u128, 1 << 0); | ||
| 4243 | try testArgs(i64, u128, 1 << 127); | ||
| 4244 | try testArgs(i128, u128, 0); | ||
| 4245 | try testArgs(i128, u128, 1 << 0); | ||
| 4246 | try testArgs(i128, u128, 1 << 127); | ||
| 4247 | try testArgs(i256, u128, 0); | ||
| 4248 | try testArgs(i256, u128, 1 << 0); | ||
| 4249 | try testArgs(i256, u128, 1 << 127); | ||
| 4250 | try testArgs(i512, u128, 0); | ||
| 4251 | try testArgs(i512, u128, 1 << 0); | ||
| 4252 | try testArgs(i512, u128, 1 << 127); | ||
| 4253 | try testArgs(i1024, u128, 0); | ||
| 4254 | try testArgs(i1024, u128, 1 << 0); | ||
| 4255 | try testArgs(i1024, u128, 1 << 127); | ||
| 4256 | |||
| 4257 | try testArgs(u8, i129, -1 << 128); | ||
| 4258 | try testArgs(u8, i129, -1); | ||
| 4259 | try testArgs(u8, i129, 0); | ||
| 4260 | try testArgs(u16, i129, -1 << 128); | ||
| 4261 | try testArgs(u16, i129, -1); | ||
| 4262 | try testArgs(u16, i129, 0); | ||
| 4263 | try testArgs(u32, i129, -1 << 128); | ||
| 4264 | try testArgs(u32, i129, -1); | ||
| 4265 | try testArgs(u32, i129, 0); | ||
| 4266 | try testArgs(u64, i129, -1 << 128); | ||
| 4267 | try testArgs(u64, i129, -1); | ||
| 4268 | try testArgs(u64, i129, 0); | ||
| 4269 | try testArgs(u128, i129, -1 << 128); | ||
| 4270 | try testArgs(u128, i129, -1); | ||
| 4271 | try testArgs(u128, i129, 0); | ||
| 4272 | try testArgs(u256, i129, -1 << 128); | ||
| 4273 | try testArgs(u256, i129, -1); | ||
| 4274 | try testArgs(u256, i129, 0); | ||
| 4275 | try testArgs(u512, i129, -1 << 128); | ||
| 4276 | try testArgs(u512, i129, -1); | ||
| 4277 | try testArgs(u512, i129, 0); | ||
| 4278 | try testArgs(u1024, i129, -1 << 128); | ||
| 4279 | try testArgs(u1024, i129, -1); | ||
| 4280 | try testArgs(u1024, i129, 0); | ||
| 4281 | try testArgs(i8, u129, 0); | ||
| 4282 | try testArgs(i8, u129, 1 << 0); | ||
| 4283 | try testArgs(i8, u129, 1 << 128); | ||
| 4284 | try testArgs(i16, u129, 0); | ||
| 4285 | try testArgs(i16, u129, 1 << 0); | ||
| 4286 | try testArgs(i16, u129, 1 << 128); | ||
| 4287 | try testArgs(i32, u129, 0); | ||
| 4288 | try testArgs(i32, u129, 1 << 0); | ||
| 4289 | try testArgs(i32, u129, 1 << 128); | ||
| 4290 | try testArgs(i64, u129, 0); | ||
| 4291 | try testArgs(i64, u129, 1 << 0); | ||
| 4292 | try testArgs(i64, u129, 1 << 128); | ||
| 4293 | try testArgs(i128, u129, 0); | ||
| 4294 | try testArgs(i128, u129, 1 << 0); | ||
| 4295 | try testArgs(i128, u129, 1 << 128); | ||
| 4296 | try testArgs(i256, u129, 0); | ||
| 4297 | try testArgs(i256, u129, 1 << 0); | ||
| 4298 | try testArgs(i256, u129, 1 << 128); | ||
| 4299 | try testArgs(i512, u129, 0); | ||
| 4300 | try testArgs(i512, u129, 1 << 0); | ||
| 4301 | try testArgs(i512, u129, 1 << 128); | ||
| 4302 | try testArgs(i1024, u129, 0); | ||
| 4303 | try testArgs(i1024, u129, 1 << 0); | ||
| 4304 | try testArgs(i1024, u129, 1 << 128); | ||
| 4305 | |||
| 4306 | try testArgs(u8, i255, -1 << 254); | ||
| 4307 | try testArgs(u8, i255, -1); | ||
| 4308 | try testArgs(u8, i255, 0); | ||
| 4309 | try testArgs(u16, i255, -1 << 254); | ||
| 4310 | try testArgs(u16, i255, -1); | ||
| 4311 | try testArgs(u16, i255, 0); | ||
| 4312 | try testArgs(u32, i255, -1 << 254); | ||
| 4313 | try testArgs(u32, i255, -1); | ||
| 4314 | try testArgs(u32, i255, 0); | ||
| 4315 | try testArgs(u64, i255, -1 << 254); | ||
| 4316 | try testArgs(u64, i255, -1); | ||
| 4317 | try testArgs(u64, i255, 0); | ||
| 4318 | try testArgs(u128, i255, -1 << 254); | ||
| 4319 | try testArgs(u128, i255, -1); | ||
| 4320 | try testArgs(u128, i255, 0); | ||
| 4321 | try testArgs(u256, i255, -1 << 254); | ||
| 4322 | try testArgs(u256, i255, -1); | ||
| 4323 | try testArgs(u256, i255, 0); | ||
| 4324 | try testArgs(u512, i255, -1 << 254); | ||
| 4325 | try testArgs(u512, i255, -1); | ||
| 4326 | try testArgs(u512, i255, 0); | ||
| 4327 | try testArgs(u1024, i255, -1 << 254); | ||
| 4328 | try testArgs(u1024, i255, -1); | ||
| 4329 | try testArgs(u1024, i255, 0); | ||
| 4330 | try testArgs(i8, u255, 0); | ||
| 4331 | try testArgs(i8, u255, 1 << 0); | ||
| 4332 | try testArgs(i8, u255, 1 << 254); | ||
| 4333 | try testArgs(i16, u255, 0); | ||
| 4334 | try testArgs(i16, u255, 1 << 0); | ||
| 4335 | try testArgs(i16, u255, 1 << 254); | ||
| 4336 | try testArgs(i32, u255, 0); | ||
| 4337 | try testArgs(i32, u255, 1 << 0); | ||
| 4338 | try testArgs(i32, u255, 1 << 254); | ||
| 4339 | try testArgs(i64, u255, 0); | ||
| 4340 | try testArgs(i64, u255, 1 << 0); | ||
| 4341 | try testArgs(i64, u255, 1 << 254); | ||
| 4342 | try testArgs(i128, u255, 0); | ||
| 4343 | try testArgs(i128, u255, 1 << 0); | ||
| 4344 | try testArgs(i128, u255, 1 << 254); | ||
| 4345 | try testArgs(i256, u255, 0); | ||
| 4346 | try testArgs(i256, u255, 1 << 0); | ||
| 4347 | try testArgs(i256, u255, 1 << 254); | ||
| 4348 | try testArgs(i512, u255, 0); | ||
| 4349 | try testArgs(i512, u255, 1 << 0); | ||
| 4350 | try testArgs(i512, u255, 1 << 254); | ||
| 4351 | try testArgs(i1024, u255, 0); | ||
| 4352 | try testArgs(i1024, u255, 1 << 0); | ||
| 4353 | try testArgs(i1024, u255, 1 << 254); | ||
| 4354 | |||
| 4355 | try testArgs(u8, i256, -1 << 255); | ||
| 4356 | try testArgs(u8, i256, -1); | ||
| 4357 | try testArgs(u8, i256, 0); | ||
| 4358 | try testArgs(u16, i256, -1 << 255); | ||
| 4359 | try testArgs(u16, i256, -1); | ||
| 4360 | try testArgs(u16, i256, 0); | ||
| 4361 | try testArgs(u32, i256, -1 << 255); | ||
| 4362 | try testArgs(u32, i256, -1); | ||
| 4363 | try testArgs(u32, i256, 0); | ||
| 4364 | try testArgs(u64, i256, -1 << 255); | ||
| 4365 | try testArgs(u64, i256, -1); | ||
| 4366 | try testArgs(u64, i256, 0); | ||
| 4367 | try testArgs(u128, i256, -1 << 255); | ||
| 4368 | try testArgs(u128, i256, -1); | ||
| 4369 | try testArgs(u128, i256, 0); | ||
| 4370 | try testArgs(u256, i256, -1 << 255); | ||
| 4371 | try testArgs(u256, i256, -1); | ||
| 4372 | try testArgs(u256, i256, 0); | ||
| 4373 | try testArgs(u512, i256, -1 << 255); | ||
| 4374 | try testArgs(u512, i256, -1); | ||
| 4375 | try testArgs(u512, i256, 0); | ||
| 4376 | try testArgs(u1024, i256, -1 << 255); | ||
| 4377 | try testArgs(u1024, i256, -1); | ||
| 4378 | try testArgs(u1024, i256, 0); | ||
| 4379 | try testArgs(i8, u256, 0); | ||
| 4380 | try testArgs(i8, u256, 1 << 0); | ||
| 4381 | try testArgs(i8, u256, 1 << 255); | ||
| 4382 | try testArgs(i16, u256, 0); | ||
| 4383 | try testArgs(i16, u256, 1 << 0); | ||
| 4384 | try testArgs(i16, u256, 1 << 255); | ||
| 4385 | try testArgs(i32, u256, 0); | ||
| 4386 | try testArgs(i32, u256, 1 << 0); | ||
| 4387 | try testArgs(i32, u256, 1 << 255); | ||
| 4388 | try testArgs(i64, u256, 0); | ||
| 4389 | try testArgs(i64, u256, 1 << 0); | ||
| 4390 | try testArgs(i64, u256, 1 << 255); | ||
| 4391 | try testArgs(i128, u256, 0); | ||
| 4392 | try testArgs(i128, u256, 1 << 0); | ||
| 4393 | try testArgs(i128, u256, 1 << 255); | ||
| 4394 | try testArgs(i256, u256, 0); | ||
| 4395 | try testArgs(i256, u256, 1 << 0); | ||
| 4396 | try testArgs(i256, u256, 1 << 255); | ||
| 4397 | try testArgs(i512, u256, 0); | ||
| 4398 | try testArgs(i512, u256, 1 << 0); | ||
| 4399 | try testArgs(i512, u256, 1 << 255); | ||
| 4400 | try testArgs(i1024, u256, 0); | ||
| 4401 | try testArgs(i1024, u256, 1 << 0); | ||
| 4402 | try testArgs(i1024, u256, 1 << 255); | ||
| 4403 | |||
| 4404 | try testArgs(u8, i257, -1 << 256); | ||
| 4405 | try testArgs(u8, i257, -1); | ||
| 4406 | try testArgs(u8, i257, 0); | ||
| 4407 | try testArgs(u16, i257, -1 << 256); | ||
| 4408 | try testArgs(u16, i257, -1); | ||
| 4409 | try testArgs(u16, i257, 0); | ||
| 4410 | try testArgs(u32, i257, -1 << 256); | ||
| 4411 | try testArgs(u32, i257, -1); | ||
| 4412 | try testArgs(u32, i257, 0); | ||
| 4413 | try testArgs(u64, i257, -1 << 256); | ||
| 4414 | try testArgs(u64, i257, -1); | ||
| 4415 | try testArgs(u64, i257, 0); | ||
| 4416 | try testArgs(u128, i257, -1 << 256); | ||
| 4417 | try testArgs(u128, i257, -1); | ||
| 4418 | try testArgs(u128, i257, 0); | ||
| 4419 | try testArgs(u256, i257, -1 << 256); | ||
| 4420 | try testArgs(u256, i257, -1); | ||
| 4421 | try testArgs(u256, i257, 0); | ||
| 4422 | try testArgs(u512, i257, -1 << 256); | ||
| 4423 | try testArgs(u512, i257, -1); | ||
| 4424 | try testArgs(u512, i257, 0); | ||
| 4425 | try testArgs(u1024, i257, -1 << 256); | ||
| 4426 | try testArgs(u1024, i257, -1); | ||
| 4427 | try testArgs(u1024, i257, 0); | ||
| 4428 | try testArgs(i8, u257, 0); | ||
| 4429 | try testArgs(i8, u257, 1 << 0); | ||
| 4430 | try testArgs(i8, u257, 1 << 256); | ||
| 4431 | try testArgs(i16, u257, 0); | ||
| 4432 | try testArgs(i16, u257, 1 << 0); | ||
| 4433 | try testArgs(i16, u257, 1 << 256); | ||
| 4434 | try testArgs(i32, u257, 0); | ||
| 4435 | try testArgs(i32, u257, 1 << 0); | ||
| 4436 | try testArgs(i32, u257, 1 << 256); | ||
| 4437 | try testArgs(i64, u257, 0); | ||
| 4438 | try testArgs(i64, u257, 1 << 0); | ||
| 4439 | try testArgs(i64, u257, 1 << 256); | ||
| 4440 | try testArgs(i128, u257, 0); | ||
| 4441 | try testArgs(i128, u257, 1 << 0); | ||
| 4442 | try testArgs(i128, u257, 1 << 256); | ||
| 4443 | try testArgs(i256, u257, 0); | ||
| 4444 | try testArgs(i256, u257, 1 << 0); | ||
| 4445 | try testArgs(i256, u257, 1 << 256); | ||
| 4446 | try testArgs(i512, u257, 0); | ||
| 4447 | try testArgs(i512, u257, 1 << 0); | ||
| 4448 | try testArgs(i512, u257, 1 << 256); | ||
| 4449 | try testArgs(i1024, u257, 0); | ||
| 4450 | try testArgs(i1024, u257, 1 << 0); | ||
| 4451 | try testArgs(i1024, u257, 1 << 256); | ||
| 4452 | |||
| 4453 | try testArgs(u8, i511, -1 << 510); | ||
| 4454 | try testArgs(u8, i511, -1); | ||
| 4455 | try testArgs(u8, i511, 0); | ||
| 4456 | try testArgs(u16, i511, -1 << 510); | ||
| 4457 | try testArgs(u16, i511, -1); | ||
| 4458 | try testArgs(u16, i511, 0); | ||
| 4459 | try testArgs(u32, i511, -1 << 510); | ||
| 4460 | try testArgs(u32, i511, -1); | ||
| 4461 | try testArgs(u32, i511, 0); | ||
| 4462 | try testArgs(u64, i511, -1 << 510); | ||
| 4463 | try testArgs(u64, i511, -1); | ||
| 4464 | try testArgs(u64, i511, 0); | ||
| 4465 | try testArgs(u128, i511, -1 << 510); | ||
| 4466 | try testArgs(u128, i511, -1); | ||
| 4467 | try testArgs(u128, i511, 0); | ||
| 4468 | try testArgs(u256, i511, -1 << 510); | ||
| 4469 | try testArgs(u256, i511, -1); | ||
| 4470 | try testArgs(u256, i511, 0); | ||
| 4471 | try testArgs(u512, i511, -1 << 510); | ||
| 4472 | try testArgs(u512, i511, -1); | ||
| 4473 | try testArgs(u512, i511, 0); | ||
| 4474 | try testArgs(u1024, i511, -1 << 510); | ||
| 4475 | try testArgs(u1024, i511, -1); | ||
| 4476 | try testArgs(u1024, i511, 0); | ||
| 4477 | try testArgs(i8, u511, 0); | ||
| 4478 | try testArgs(i8, u511, 1 << 0); | ||
| 4479 | try testArgs(i8, u511, 1 << 510); | ||
| 4480 | try testArgs(i16, u511, 0); | ||
| 4481 | try testArgs(i16, u511, 1 << 0); | ||
| 4482 | try testArgs(i16, u511, 1 << 510); | ||
| 4483 | try testArgs(i32, u511, 0); | ||
| 4484 | try testArgs(i32, u511, 1 << 0); | ||
| 4485 | try testArgs(i32, u511, 1 << 510); | ||
| 4486 | try testArgs(i64, u511, 0); | ||
| 4487 | try testArgs(i64, u511, 1 << 0); | ||
| 4488 | try testArgs(i64, u511, 1 << 510); | ||
| 4489 | try testArgs(i128, u511, 0); | ||
| 4490 | try testArgs(i128, u511, 1 << 0); | ||
| 4491 | try testArgs(i128, u511, 1 << 510); | ||
| 4492 | try testArgs(i256, u511, 0); | ||
| 4493 | try testArgs(i256, u511, 1 << 0); | ||
| 4494 | try testArgs(i256, u511, 1 << 510); | ||
| 4495 | try testArgs(i512, u511, 0); | ||
| 4496 | try testArgs(i512, u511, 1 << 0); | ||
| 4497 | try testArgs(i512, u511, 1 << 510); | ||
| 4498 | try testArgs(i1024, u511, 0); | ||
| 4499 | try testArgs(i1024, u511, 1 << 0); | ||
| 4500 | try testArgs(i1024, u511, 1 << 510); | ||
| 4501 | |||
| 4502 | try testArgs(u8, i512, -1 << 511); | ||
| 4503 | try testArgs(u8, i512, -1); | ||
| 4504 | try testArgs(u8, i512, 0); | ||
| 4505 | try testArgs(u16, i512, -1 << 511); | ||
| 4506 | try testArgs(u16, i512, -1); | ||
| 4507 | try testArgs(u16, i512, 0); | ||
| 4508 | try testArgs(u32, i512, -1 << 511); | ||
| 4509 | try testArgs(u32, i512, -1); | ||
| 4510 | try testArgs(u32, i512, 0); | ||
| 4511 | try testArgs(u64, i512, -1 << 511); | ||
| 4512 | try testArgs(u64, i512, -1); | ||
| 4513 | try testArgs(u64, i512, 0); | ||
| 4514 | try testArgs(u128, i512, -1 << 511); | ||
| 4515 | try testArgs(u128, i512, -1); | ||
| 4516 | try testArgs(u128, i512, 0); | ||
| 4517 | try testArgs(u256, i512, -1 << 511); | ||
| 4518 | try testArgs(u256, i512, -1); | ||
| 4519 | try testArgs(u256, i512, 0); | ||
| 4520 | try testArgs(u512, i512, -1 << 511); | ||
| 4521 | try testArgs(u512, i512, -1); | ||
| 4522 | try testArgs(u512, i512, 0); | ||
| 4523 | try testArgs(u1024, i512, -1 << 511); | ||
| 4524 | try testArgs(u1024, i512, -1); | ||
| 4525 | try testArgs(u1024, i512, 0); | ||
| 4526 | try testArgs(i8, u512, 0); | ||
| 4527 | try testArgs(i8, u512, 1 << 0); | ||
| 4528 | try testArgs(i8, u512, 1 << 511); | ||
| 4529 | try testArgs(i16, u512, 0); | ||
| 4530 | try testArgs(i16, u512, 1 << 0); | ||
| 4531 | try testArgs(i16, u512, 1 << 511); | ||
| 4532 | try testArgs(i32, u512, 0); | ||
| 4533 | try testArgs(i32, u512, 1 << 0); | ||
| 4534 | try testArgs(i32, u512, 1 << 511); | ||
| 4535 | try testArgs(i64, u512, 0); | ||
| 4536 | try testArgs(i64, u512, 1 << 0); | ||
| 4537 | try testArgs(i64, u512, 1 << 511); | ||
| 4538 | try testArgs(i128, u512, 0); | ||
| 4539 | try testArgs(i128, u512, 1 << 0); | ||
| 4540 | try testArgs(i128, u512, 1 << 511); | ||
| 4541 | try testArgs(i256, u512, 0); | ||
| 4542 | try testArgs(i256, u512, 1 << 0); | ||
| 4543 | try testArgs(i256, u512, 1 << 511); | ||
| 4544 | try testArgs(i512, u512, 0); | ||
| 4545 | try testArgs(i512, u512, 1 << 0); | ||
| 4546 | try testArgs(i512, u512, 1 << 511); | ||
| 4547 | try testArgs(i1024, u512, 0); | ||
| 4548 | try testArgs(i1024, u512, 1 << 0); | ||
| 4549 | try testArgs(i1024, u512, 1 << 511); | ||
| 4550 | |||
| 4551 | try testArgs(u8, i513, -1 << 512); | ||
| 4552 | try testArgs(u8, i513, -1); | ||
| 4553 | try testArgs(u8, i513, 0); | ||
| 4554 | try testArgs(u16, i513, -1 << 512); | ||
| 4555 | try testArgs(u16, i513, -1); | ||
| 4556 | try testArgs(u16, i513, 0); | ||
| 4557 | try testArgs(u32, i513, -1 << 512); | ||
| 4558 | try testArgs(u32, i513, -1); | ||
| 4559 | try testArgs(u32, i513, 0); | ||
| 4560 | try testArgs(u64, i513, -1 << 512); | ||
| 4561 | try testArgs(u64, i513, -1); | ||
| 4562 | try testArgs(u64, i513, 0); | ||
| 4563 | try testArgs(u128, i513, -1 << 512); | ||
| 4564 | try testArgs(u128, i513, -1); | ||
| 4565 | try testArgs(u128, i513, 0); | ||
| 4566 | try testArgs(u256, i513, -1 << 512); | ||
| 4567 | try testArgs(u256, i513, -1); | ||
| 4568 | try testArgs(u256, i513, 0); | ||
| 4569 | try testArgs(u512, i513, -1 << 512); | ||
| 4570 | try testArgs(u512, i513, -1); | ||
| 4571 | try testArgs(u512, i513, 0); | ||
| 4572 | try testArgs(u1024, i513, -1 << 512); | ||
| 4573 | try testArgs(u1024, i513, -1); | ||
| 4574 | try testArgs(u1024, i513, 0); | ||
| 4575 | try testArgs(i8, u513, 0); | ||
| 4576 | try testArgs(i8, u513, 1 << 0); | ||
| 4577 | try testArgs(i8, u513, 1 << 512); | ||
| 4578 | try testArgs(i16, u513, 0); | ||
| 4579 | try testArgs(i16, u513, 1 << 0); | ||
| 4580 | try testArgs(i16, u513, 1 << 512); | ||
| 4581 | try testArgs(i32, u513, 0); | ||
| 4582 | try testArgs(i32, u513, 1 << 0); | ||
| 4583 | try testArgs(i32, u513, 1 << 512); | ||
| 4584 | try testArgs(i64, u513, 0); | ||
| 4585 | try testArgs(i64, u513, 1 << 0); | ||
| 4586 | try testArgs(i64, u513, 1 << 512); | ||
| 4587 | try testArgs(i128, u513, 0); | ||
| 4588 | try testArgs(i128, u513, 1 << 0); | ||
| 4589 | try testArgs(i128, u513, 1 << 512); | ||
| 4590 | try testArgs(i256, u513, 0); | ||
| 4591 | try testArgs(i256, u513, 1 << 0); | ||
| 4592 | try testArgs(i256, u513, 1 << 512); | ||
| 4593 | try testArgs(i512, u513, 0); | ||
| 4594 | try testArgs(i512, u513, 1 << 0); | ||
| 4595 | try testArgs(i512, u513, 1 << 512); | ||
| 4596 | try testArgs(i1024, u513, 0); | ||
| 4597 | try testArgs(i1024, u513, 1 << 0); | ||
| 4598 | try testArgs(i1024, u513, 1 << 512); | ||
| 4599 | |||
| 4600 | try testArgs(u8, i1023, -1 << 1022); | ||
| 4601 | try testArgs(u8, i1023, -1); | ||
| 4602 | try testArgs(u8, i1023, 0); | ||
| 4603 | try testArgs(u16, i1023, -1 << 1022); | ||
| 4604 | try testArgs(u16, i1023, -1); | ||
| 4605 | try testArgs(u16, i1023, 0); | ||
| 4606 | try testArgs(u32, i1023, -1 << 1022); | ||
| 4607 | try testArgs(u32, i1023, -1); | ||
| 4608 | try testArgs(u32, i1023, 0); | ||
| 4609 | try testArgs(u64, i1023, -1 << 1022); | ||
| 4610 | try testArgs(u64, i1023, -1); | ||
| 4611 | try testArgs(u64, i1023, 0); | ||
| 4612 | try testArgs(u128, i1023, -1 << 1022); | ||
| 4613 | try testArgs(u128, i1023, -1); | ||
| 4614 | try testArgs(u128, i1023, 0); | ||
| 4615 | try testArgs(u256, i1023, -1 << 1022); | ||
| 4616 | try testArgs(u256, i1023, -1); | ||
| 4617 | try testArgs(u256, i1023, 0); | ||
| 4618 | try testArgs(u512, i1023, -1 << 1022); | ||
| 4619 | try testArgs(u512, i1023, -1); | ||
| 4620 | try testArgs(u512, i1023, 0); | ||
| 4621 | try testArgs(u1024, i1023, -1 << 1022); | ||
| 4622 | try testArgs(u1024, i1023, -1); | ||
| 4623 | try testArgs(u1024, i1023, 0); | ||
| 4624 | try testArgs(i8, u1023, 0); | ||
| 4625 | try testArgs(i8, u1023, 1 << 0); | ||
| 4626 | try testArgs(i8, u1023, 1 << 1022); | ||
| 4627 | try testArgs(i16, u1023, 0); | ||
| 4628 | try testArgs(i16, u1023, 1 << 0); | ||
| 4629 | try testArgs(i16, u1023, 1 << 1022); | ||
| 4630 | try testArgs(i32, u1023, 0); | ||
| 4631 | try testArgs(i32, u1023, 1 << 0); | ||
| 4632 | try testArgs(i32, u1023, 1 << 1022); | ||
| 4633 | try testArgs(i64, u1023, 0); | ||
| 4634 | try testArgs(i64, u1023, 1 << 0); | ||
| 4635 | try testArgs(i64, u1023, 1 << 1022); | ||
| 4636 | try testArgs(i128, u1023, 0); | ||
| 4637 | try testArgs(i128, u1023, 1 << 0); | ||
| 4638 | try testArgs(i128, u1023, 1 << 1022); | ||
| 4639 | try testArgs(i256, u1023, 0); | ||
| 4640 | try testArgs(i256, u1023, 1 << 0); | ||
| 4641 | try testArgs(i256, u1023, 1 << 1022); | ||
| 4642 | try testArgs(i512, u1023, 0); | ||
| 4643 | try testArgs(i512, u1023, 1 << 0); | ||
| 4644 | try testArgs(i512, u1023, 1 << 1022); | ||
| 4645 | try testArgs(i1024, u1023, 0); | ||
| 4646 | try testArgs(i1024, u1023, 1 << 0); | ||
| 4647 | try testArgs(i1024, u1023, 1 << 1022); | ||
| 4648 | |||
| 4649 | try testArgs(u8, i1024, -1 << 1023); | ||
| 4650 | try testArgs(u8, i1024, -1); | ||
| 4651 | try testArgs(u8, i1024, 0); | ||
| 4652 | try testArgs(u16, i1024, -1 << 1023); | ||
| 4653 | try testArgs(u16, i1024, -1); | ||
| 4654 | try testArgs(u16, i1024, 0); | ||
| 4655 | try testArgs(u32, i1024, -1 << 1023); | ||
| 4656 | try testArgs(u32, i1024, -1); | ||
| 4657 | try testArgs(u32, i1024, 0); | ||
| 4658 | try testArgs(u64, i1024, -1 << 1023); | ||
| 4659 | try testArgs(u64, i1024, -1); | ||
| 4660 | try testArgs(u64, i1024, 0); | ||
| 4661 | try testArgs(u128, i1024, -1 << 1023); | ||
| 4662 | try testArgs(u128, i1024, -1); | ||
| 4663 | try testArgs(u128, i1024, 0); | ||
| 4664 | try testArgs(u256, i1024, -1 << 1023); | ||
| 4665 | try testArgs(u256, i1024, -1); | ||
| 4666 | try testArgs(u256, i1024, 0); | ||
| 4667 | try testArgs(u512, i1024, -1 << 1023); | ||
| 4668 | try testArgs(u512, i1024, -1); | ||
| 4669 | try testArgs(u512, i1024, 0); | ||
| 4670 | try testArgs(u1024, i1024, -1 << 1023); | ||
| 4671 | try testArgs(u1024, i1024, -1); | ||
| 4672 | try testArgs(u1024, i1024, 0); | ||
| 4673 | try testArgs(i8, u1024, 0); | ||
| 4674 | try testArgs(i8, u1024, 1 << 0); | ||
| 4675 | try testArgs(i8, u1024, 1 << 1023); | ||
| 4676 | try testArgs(i16, u1024, 0); | ||
| 4677 | try testArgs(i16, u1024, 1 << 0); | ||
| 4678 | try testArgs(i16, u1024, 1 << 1023); | ||
| 4679 | try testArgs(i32, u1024, 0); | ||
| 4680 | try testArgs(i32, u1024, 1 << 0); | ||
| 4681 | try testArgs(i32, u1024, 1 << 1023); | ||
| 4682 | try testArgs(i64, u1024, 0); | ||
| 4683 | try testArgs(i64, u1024, 1 << 0); | ||
| 4684 | try testArgs(i64, u1024, 1 << 1023); | ||
| 4685 | try testArgs(i128, u1024, 0); | ||
| 4686 | try testArgs(i128, u1024, 1 << 0); | ||
| 4687 | try testArgs(i128, u1024, 1 << 1023); | ||
| 4688 | try testArgs(i256, u1024, 0); | ||
| 4689 | try testArgs(i256, u1024, 1 << 0); | ||
| 4690 | try testArgs(i256, u1024, 1 << 1023); | ||
| 4691 | try testArgs(i512, u1024, 0); | ||
| 4692 | try testArgs(i512, u1024, 1 << 0); | ||
| 4693 | try testArgs(i512, u1024, 1 << 1023); | ||
| 4694 | try testArgs(i1024, u1024, 0); | ||
| 4695 | try testArgs(i1024, u1024, 1 << 0); | ||
| 4696 | try testArgs(i1024, u1024, 1 << 1023); | ||
| 4697 | |||
| 4698 | try testArgs(u8, i1025, -1 << 1024); | ||
| 4699 | try testArgs(u8, i1025, -1); | ||
| 4700 | try testArgs(u8, i1025, 0); | ||
| 4701 | try testArgs(u16, i1025, -1 << 1024); | ||
| 4702 | try testArgs(u16, i1025, -1); | ||
| 4703 | try testArgs(u16, i1025, 0); | ||
| 4704 | try testArgs(u32, i1025, -1 << 1024); | ||
| 4705 | try testArgs(u32, i1025, -1); | ||
| 4706 | try testArgs(u32, i1025, 0); | ||
| 4707 | try testArgs(u64, i1025, -1 << 1024); | ||
| 4708 | try testArgs(u64, i1025, -1); | ||
| 4709 | try testArgs(u64, i1025, 0); | ||
| 4710 | try testArgs(u128, i1025, -1 << 1024); | ||
| 4711 | try testArgs(u128, i1025, -1); | ||
| 4712 | try testArgs(u128, i1025, 0); | ||
| 4713 | try testArgs(u256, i1025, -1 << 1024); | ||
| 4714 | try testArgs(u256, i1025, -1); | ||
| 4715 | try testArgs(u256, i1025, 0); | ||
| 4716 | try testArgs(u512, i1025, -1 << 1024); | ||
| 4717 | try testArgs(u512, i1025, -1); | ||
| 4718 | try testArgs(u512, i1025, 0); | ||
| 4719 | try testArgs(u1024, i1025, -1 << 1024); | ||
| 4720 | try testArgs(u1024, i1025, -1); | ||
| 4721 | try testArgs(u1024, i1025, 0); | ||
| 4722 | try testArgs(i8, u1025, 0); | ||
| 4723 | try testArgs(i8, u1025, 1 << 0); | ||
| 4724 | try testArgs(i8, u1025, 1 << 1024); | ||
| 4725 | try testArgs(i16, u1025, 0); | ||
| 4726 | try testArgs(i16, u1025, 1 << 0); | ||
| 4727 | try testArgs(i16, u1025, 1 << 1024); | ||
| 4728 | try testArgs(i32, u1025, 0); | ||
| 4729 | try testArgs(i32, u1025, 1 << 0); | ||
| 4730 | try testArgs(i32, u1025, 1 << 1024); | ||
| 4731 | try testArgs(i64, u1025, 0); | ||
| 4732 | try testArgs(i64, u1025, 1 << 0); | ||
| 4733 | try testArgs(i64, u1025, 1 << 1024); | ||
| 4734 | try testArgs(i128, u1025, 0); | ||
| 4735 | try testArgs(i128, u1025, 1 << 0); | ||
| 4736 | try testArgs(i128, u1025, 1 << 1024); | ||
| 4737 | try testArgs(i256, u1025, 0); | ||
| 4738 | try testArgs(i256, u1025, 1 << 0); | ||
| 4739 | try testArgs(i256, u1025, 1 << 1024); | ||
| 4740 | try testArgs(i512, u1025, 0); | ||
| 4741 | try testArgs(i512, u1025, 1 << 0); | ||
| 4742 | try testArgs(i512, u1025, 1 << 1024); | ||
| 4743 | try testArgs(i1024, u1025, 0); | ||
| 4744 | try testArgs(i1024, u1025, 1 << 0); | ||
| 4745 | try testArgs(i1024, u1025, 1 << 1024); | ||
| 4746 | } | ||
| 4747 | fn testFloats() !void { | ||
| 4748 | @setEvalBranchQuota(3_100); | ||
| 4749 | |||
| 4750 | try testArgs(f16, f16, -nan(f16)); | ||
| 4751 | try testArgs(f16, f16, -inf(f16)); | ||
| 4752 | try testArgs(f16, f16, -fmax(f16)); | ||
| 4753 | try testArgs(f16, f16, -1e1); | ||
| 4754 | try testArgs(f16, f16, -1e0); | ||
| 4755 | try testArgs(f16, f16, -1e-1); | ||
| 4756 | try testArgs(f16, f16, -fmin(f16)); | ||
| 4757 | try testArgs(f16, f16, -tmin(f16)); | ||
| 4758 | try testArgs(f16, f16, -0.0); | ||
| 4759 | try testArgs(f16, f16, 0.0); | ||
| 4760 | try testArgs(f16, f16, tmin(f16)); | ||
| 4761 | try testArgs(f16, f16, fmin(f16)); | ||
| 4762 | try testArgs(f16, f16, 1e-1); | ||
| 4763 | try testArgs(f16, f16, 1e0); | ||
| 4764 | try testArgs(f16, f16, 1e1); | ||
| 4765 | try testArgs(f16, f16, fmax(f16)); | ||
| 4766 | try testArgs(f16, f16, inf(f16)); | ||
| 4767 | try testArgs(f16, f16, nan(f16)); | ||
| 4768 | |||
| 4769 | try testArgs(f32, f16, -nan(f16)); | ||
| 4770 | try testArgs(f32, f16, -inf(f16)); | ||
| 4771 | try testArgs(f32, f16, -fmax(f16)); | ||
| 4772 | try testArgs(f32, f16, -1e1); | ||
| 4773 | try testArgs(f32, f16, -1e0); | ||
| 4774 | try testArgs(f32, f16, -1e-1); | ||
| 4775 | try testArgs(f32, f16, -fmin(f16)); | ||
| 4776 | try testArgs(f32, f16, -tmin(f16)); | ||
| 4777 | try testArgs(f32, f16, -0.0); | ||
| 4778 | try testArgs(f32, f16, 0.0); | ||
| 4779 | try testArgs(f32, f16, tmin(f16)); | ||
| 4780 | try testArgs(f32, f16, fmin(f16)); | ||
| 4781 | try testArgs(f32, f16, 1e-1); | ||
| 4782 | try testArgs(f32, f16, 1e0); | ||
| 4783 | try testArgs(f32, f16, 1e1); | ||
| 4784 | try testArgs(f32, f16, fmax(f16)); | ||
| 4785 | try testArgs(f32, f16, inf(f16)); | ||
| 4786 | try testArgs(f32, f16, nan(f16)); | ||
| 4787 | |||
| 4788 | try testArgs(f64, f16, -nan(f16)); | ||
| 4789 | try testArgs(f64, f16, -inf(f16)); | ||
| 4790 | try testArgs(f64, f16, -fmax(f16)); | ||
| 4791 | try testArgs(f64, f16, -1e1); | ||
| 4792 | try testArgs(f64, f16, -1e0); | ||
| 4793 | try testArgs(f64, f16, -1e-1); | ||
| 4794 | try testArgs(f64, f16, -fmin(f16)); | ||
| 4795 | try testArgs(f64, f16, -tmin(f16)); | ||
| 4796 | try testArgs(f64, f16, -0.0); | ||
| 4797 | try testArgs(f64, f16, 0.0); | ||
| 4798 | try testArgs(f64, f16, tmin(f16)); | ||
| 4799 | try testArgs(f64, f16, fmin(f16)); | ||
| 4800 | try testArgs(f64, f16, 1e-1); | ||
| 4801 | try testArgs(f64, f16, 1e0); | ||
| 4802 | try testArgs(f64, f16, 1e1); | ||
| 4803 | try testArgs(f64, f16, fmax(f16)); | ||
| 4804 | try testArgs(f64, f16, inf(f16)); | ||
| 4805 | try testArgs(f64, f16, nan(f16)); | ||
| 4806 | |||
| 4807 | try testArgs(f80, f16, -nan(f16)); | ||
| 4808 | try testArgs(f80, f16, -inf(f16)); | ||
| 4809 | try testArgs(f80, f16, -fmax(f16)); | ||
| 4810 | try testArgs(f80, f16, -1e1); | ||
| 4811 | try testArgs(f80, f16, -1e0); | ||
| 4812 | try testArgs(f80, f16, -1e-1); | ||
| 4813 | try testArgs(f80, f16, -fmin(f16)); | ||
| 4814 | try testArgs(f80, f16, -tmin(f16)); | ||
| 4815 | try testArgs(f80, f16, -0.0); | ||
| 4816 | try testArgs(f80, f16, 0.0); | ||
| 4817 | try testArgs(f80, f16, tmin(f16)); | ||
| 4818 | try testArgs(f80, f16, fmin(f16)); | ||
| 4819 | try testArgs(f80, f16, 1e-1); | ||
| 4820 | try testArgs(f80, f16, 1e0); | ||
| 4821 | try testArgs(f80, f16, 1e1); | ||
| 4822 | try testArgs(f80, f16, fmax(f16)); | ||
| 4823 | try testArgs(f80, f16, inf(f16)); | ||
| 4824 | try testArgs(f80, f16, nan(f16)); | ||
| 4825 | |||
| 4826 | try testArgs(f128, f16, -nan(f16)); | ||
| 4827 | try testArgs(f128, f16, -inf(f16)); | ||
| 4828 | try testArgs(f128, f16, -fmax(f16)); | ||
| 4829 | try testArgs(f128, f16, -1e1); | ||
| 4830 | try testArgs(f128, f16, -1e0); | ||
| 4831 | try testArgs(f128, f16, -1e-1); | ||
| 4832 | try testArgs(f128, f16, -fmin(f16)); | ||
| 4833 | try testArgs(f128, f16, -tmin(f16)); | ||
| 4834 | try testArgs(f128, f16, -0.0); | ||
| 4835 | try testArgs(f128, f16, 0.0); | ||
| 4836 | try testArgs(f128, f16, tmin(f16)); | ||
| 4837 | try testArgs(f128, f16, fmin(f16)); | ||
| 4838 | try testArgs(f128, f16, 1e-1); | ||
| 4839 | try testArgs(f128, f16, 1e0); | ||
| 4840 | try testArgs(f128, f16, 1e1); | ||
| 4841 | try testArgs(f128, f16, fmax(f16)); | ||
| 4842 | try testArgs(f128, f16, inf(f16)); | ||
| 4843 | try testArgs(f128, f16, nan(f16)); | ||
| 4844 | |||
| 4845 | try testArgs(f16, f32, -nan(f32)); | ||
| 4846 | try testArgs(f16, f32, -inf(f32)); | ||
| 4847 | try testArgs(f16, f32, -fmax(f32)); | ||
| 4848 | try testArgs(f16, f32, -1e1); | ||
| 4849 | try testArgs(f16, f32, -1e0); | ||
| 4850 | try testArgs(f16, f32, -1e-1); | ||
| 4851 | try testArgs(f16, f32, -fmin(f32)); | ||
| 4852 | try testArgs(f16, f32, -tmin(f32)); | ||
| 4853 | try testArgs(f16, f32, -0.0); | ||
| 4854 | try testArgs(f16, f32, 0.0); | ||
| 4855 | try testArgs(f16, f32, tmin(f32)); | ||
| 4856 | try testArgs(f16, f32, fmin(f32)); | ||
| 4857 | try testArgs(f16, f32, 1e-1); | ||
| 4858 | try testArgs(f16, f32, 1e0); | ||
| 4859 | try testArgs(f16, f32, 1e1); | ||
| 4860 | try testArgs(f16, f32, fmax(f32)); | ||
| 4861 | try testArgs(f16, f32, inf(f32)); | ||
| 4862 | try testArgs(f16, f32, nan(f32)); | ||
| 4863 | |||
| 4864 | try testArgs(f32, f32, -nan(f32)); | ||
| 4865 | try testArgs(f32, f32, -inf(f32)); | ||
| 4866 | try testArgs(f32, f32, -fmax(f32)); | ||
| 4867 | try testArgs(f32, f32, -1e1); | ||
| 4868 | try testArgs(f32, f32, -1e0); | ||
| 4869 | try testArgs(f32, f32, -1e-1); | ||
| 4870 | try testArgs(f32, f32, -fmin(f32)); | ||
| 4871 | try testArgs(f32, f32, -tmin(f32)); | ||
| 4872 | try testArgs(f32, f32, -0.0); | ||
| 4873 | try testArgs(f32, f32, 0.0); | ||
| 4874 | try testArgs(f32, f32, tmin(f32)); | ||
| 4875 | try testArgs(f32, f32, fmin(f32)); | ||
| 4876 | try testArgs(f32, f32, 1e-1); | ||
| 4877 | try testArgs(f32, f32, 1e0); | ||
| 4878 | try testArgs(f32, f32, 1e1); | ||
| 4879 | try testArgs(f32, f32, fmax(f32)); | ||
| 4880 | try testArgs(f32, f32, inf(f32)); | ||
| 4881 | try testArgs(f32, f32, nan(f32)); | ||
| 4882 | |||
| 4883 | try testArgs(f64, f32, -nan(f32)); | ||
| 4884 | try testArgs(f64, f32, -inf(f32)); | ||
| 4885 | try testArgs(f64, f32, -fmax(f32)); | ||
| 4886 | try testArgs(f64, f32, -1e1); | ||
| 4887 | try testArgs(f64, f32, -1e0); | ||
| 4888 | try testArgs(f64, f32, -1e-1); | ||
| 4889 | try testArgs(f64, f32, -fmin(f32)); | ||
| 4890 | try testArgs(f64, f32, -tmin(f32)); | ||
| 4891 | try testArgs(f64, f32, -0.0); | ||
| 4892 | try testArgs(f64, f32, 0.0); | ||
| 4893 | try testArgs(f64, f32, tmin(f32)); | ||
| 4894 | try testArgs(f64, f32, fmin(f32)); | ||
| 4895 | try testArgs(f64, f32, 1e-1); | ||
| 4896 | try testArgs(f64, f32, 1e0); | ||
| 4897 | try testArgs(f64, f32, 1e1); | ||
| 4898 | try testArgs(f64, f32, fmax(f32)); | ||
| 4899 | try testArgs(f64, f32, inf(f32)); | ||
| 4900 | try testArgs(f64, f32, nan(f32)); | ||
| 4901 | |||
| 4902 | try testArgs(f80, f32, -nan(f32)); | ||
| 4903 | try testArgs(f80, f32, -inf(f32)); | ||
| 4904 | try testArgs(f80, f32, -fmax(f32)); | ||
| 4905 | try testArgs(f80, f32, -1e1); | ||
| 4906 | try testArgs(f80, f32, -1e0); | ||
| 4907 | try testArgs(f80, f32, -1e-1); | ||
| 4908 | try testArgs(f80, f32, -fmin(f32)); | ||
| 4909 | try testArgs(f80, f32, -tmin(f32)); | ||
| 4910 | try testArgs(f80, f32, -0.0); | ||
| 4911 | try testArgs(f80, f32, 0.0); | ||
| 4912 | try testArgs(f80, f32, tmin(f32)); | ||
| 4913 | try testArgs(f80, f32, fmin(f32)); | ||
| 4914 | try testArgs(f80, f32, 1e-1); | ||
| 4915 | try testArgs(f80, f32, 1e0); | ||
| 4916 | try testArgs(f80, f32, 1e1); | ||
| 4917 | try testArgs(f80, f32, fmax(f32)); | ||
| 4918 | try testArgs(f80, f32, inf(f32)); | ||
| 4919 | try testArgs(f80, f32, nan(f32)); | ||
| 4920 | |||
| 4921 | try testArgs(f128, f32, -nan(f32)); | ||
| 4922 | try testArgs(f128, f32, -inf(f32)); | ||
| 4923 | try testArgs(f128, f32, -fmax(f32)); | ||
| 4924 | try testArgs(f128, f32, -1e1); | ||
| 4925 | try testArgs(f128, f32, -1e0); | ||
| 4926 | try testArgs(f128, f32, -1e-1); | ||
| 4927 | try testArgs(f128, f32, -fmin(f32)); | ||
| 4928 | try testArgs(f128, f32, -tmin(f32)); | ||
| 4929 | try testArgs(f128, f32, -0.0); | ||
| 4930 | try testArgs(f128, f32, 0.0); | ||
| 4931 | try testArgs(f128, f32, tmin(f32)); | ||
| 4932 | try testArgs(f128, f32, fmin(f32)); | ||
| 4933 | try testArgs(f128, f32, 1e-1); | ||
| 4934 | try testArgs(f128, f32, 1e0); | ||
| 4935 | try testArgs(f128, f32, 1e1); | ||
| 4936 | try testArgs(f128, f32, fmax(f32)); | ||
| 4937 | try testArgs(f128, f32, inf(f32)); | ||
| 4938 | try testArgs(f128, f32, nan(f32)); | ||
| 4939 | |||
| 4940 | try testArgs(f16, f64, -nan(f64)); | ||
| 4941 | try testArgs(f16, f64, -inf(f64)); | ||
| 4942 | try testArgs(f16, f64, -fmax(f64)); | ||
| 4943 | try testArgs(f16, f64, -1e1); | ||
| 4944 | try testArgs(f16, f64, -1e0); | ||
| 4945 | try testArgs(f16, f64, -1e-1); | ||
| 4946 | try testArgs(f16, f64, -fmin(f64)); | ||
| 4947 | try testArgs(f16, f64, -tmin(f64)); | ||
| 4948 | try testArgs(f16, f64, -0.0); | ||
| 4949 | try testArgs(f16, f64, 0.0); | ||
| 4950 | try testArgs(f16, f64, tmin(f64)); | ||
| 4951 | try testArgs(f16, f64, fmin(f64)); | ||
| 4952 | try testArgs(f16, f64, 1e-1); | ||
| 4953 | try testArgs(f16, f64, 1e0); | ||
| 4954 | try testArgs(f16, f64, 1e1); | ||
| 4955 | try testArgs(f16, f64, fmax(f64)); | ||
| 4956 | try testArgs(f16, f64, inf(f64)); | ||
| 4957 | try testArgs(f16, f64, nan(f64)); | ||
| 4958 | |||
| 4959 | try testArgs(f32, f64, -nan(f64)); | ||
| 4960 | try testArgs(f32, f64, -inf(f64)); | ||
| 4961 | try testArgs(f32, f64, -fmax(f64)); | ||
| 4962 | try testArgs(f32, f64, -1e1); | ||
| 4963 | try testArgs(f32, f64, -1e0); | ||
| 4964 | try testArgs(f32, f64, -1e-1); | ||
| 4965 | try testArgs(f32, f64, -fmin(f64)); | ||
| 4966 | try testArgs(f32, f64, -tmin(f64)); | ||
| 4967 | try testArgs(f32, f64, -0.0); | ||
| 4968 | try testArgs(f32, f64, 0.0); | ||
| 4969 | try testArgs(f32, f64, tmin(f64)); | ||
| 4970 | try testArgs(f32, f64, fmin(f64)); | ||
| 4971 | try testArgs(f32, f64, 1e-1); | ||
| 4972 | try testArgs(f32, f64, 1e0); | ||
| 4973 | try testArgs(f32, f64, 1e1); | ||
| 4974 | try testArgs(f32, f64, fmax(f64)); | ||
| 4975 | try testArgs(f32, f64, inf(f64)); | ||
| 4976 | try testArgs(f32, f64, nan(f64)); | ||
| 4977 | |||
| 4978 | try testArgs(f64, f64, -nan(f64)); | ||
| 4979 | try testArgs(f64, f64, -inf(f64)); | ||
| 4980 | try testArgs(f64, f64, -fmax(f64)); | ||
| 4981 | try testArgs(f64, f64, -1e1); | ||
| 4982 | try testArgs(f64, f64, -1e0); | ||
| 4983 | try testArgs(f64, f64, -1e-1); | ||
| 4984 | try testArgs(f64, f64, -fmin(f64)); | ||
| 4985 | try testArgs(f64, f64, -tmin(f64)); | ||
| 4986 | try testArgs(f64, f64, -0.0); | ||
| 4987 | try testArgs(f64, f64, 0.0); | ||
| 4988 | try testArgs(f64, f64, tmin(f64)); | ||
| 4989 | try testArgs(f64, f64, fmin(f64)); | ||
| 4990 | try testArgs(f64, f64, 1e-1); | ||
| 4991 | try testArgs(f64, f64, 1e0); | ||
| 4992 | try testArgs(f64, f64, 1e1); | ||
| 4993 | try testArgs(f64, f64, fmax(f64)); | ||
| 4994 | try testArgs(f64, f64, inf(f64)); | ||
| 4995 | try testArgs(f64, f64, nan(f64)); | ||
| 4996 | |||
| 4997 | try testArgs(f80, f64, -nan(f64)); | ||
| 4998 | try testArgs(f80, f64, -inf(f64)); | ||
| 4999 | try testArgs(f80, f64, -fmax(f64)); | ||
| 5000 | try testArgs(f80, f64, -1e1); | ||
| 5001 | try testArgs(f80, f64, -1e0); | ||
| 5002 | try testArgs(f80, f64, -1e-1); | ||
| 5003 | try testArgs(f80, f64, -fmin(f64)); | ||
| 5004 | try testArgs(f80, f64, -tmin(f64)); | ||
| 5005 | try testArgs(f80, f64, -0.0); | ||
| 5006 | try testArgs(f80, f64, 0.0); | ||
| 5007 | try testArgs(f80, f64, tmin(f64)); | ||
| 5008 | try testArgs(f80, f64, fmin(f64)); | ||
| 5009 | try testArgs(f80, f64, 1e-1); | ||
| 5010 | try testArgs(f80, f64, 1e0); | ||
| 5011 | try testArgs(f80, f64, 1e1); | ||
| 5012 | try testArgs(f80, f64, fmax(f64)); | ||
| 5013 | try testArgs(f80, f64, inf(f64)); | ||
| 5014 | try testArgs(f80, f64, nan(f64)); | ||
| 5015 | |||
| 5016 | try testArgs(f128, f64, -nan(f64)); | ||
| 5017 | try testArgs(f128, f64, -inf(f64)); | ||
| 5018 | try testArgs(f128, f64, -fmax(f64)); | ||
| 5019 | try testArgs(f128, f64, -1e1); | ||
| 5020 | try testArgs(f128, f64, -1e0); | ||
| 5021 | try testArgs(f128, f64, -1e-1); | ||
| 5022 | try testArgs(f128, f64, -fmin(f64)); | ||
| 5023 | try testArgs(f128, f64, -tmin(f64)); | ||
| 5024 | try testArgs(f128, f64, -0.0); | ||
| 5025 | try testArgs(f128, f64, 0.0); | ||
| 5026 | try testArgs(f128, f64, tmin(f64)); | ||
| 5027 | try testArgs(f128, f64, fmin(f64)); | ||
| 5028 | try testArgs(f128, f64, 1e-1); | ||
| 5029 | try testArgs(f128, f64, 1e0); | ||
| 5030 | try testArgs(f128, f64, 1e1); | ||
| 5031 | try testArgs(f128, f64, fmax(f64)); | ||
| 5032 | try testArgs(f128, f64, inf(f64)); | ||
| 5033 | try testArgs(f128, f64, nan(f64)); | ||
| 5034 | |||
| 5035 | try testArgs(f16, f80, -nan(f80)); | ||
| 5036 | try testArgs(f16, f80, -inf(f80)); | ||
| 5037 | try testArgs(f16, f80, -fmax(f80)); | ||
| 5038 | try testArgs(f16, f80, -1e1); | ||
| 5039 | try testArgs(f16, f80, -1e0); | ||
| 5040 | try testArgs(f16, f80, -1e-1); | ||
| 5041 | try testArgs(f16, f80, -fmin(f80)); | ||
| 5042 | try testArgs(f16, f80, -tmin(f80)); | ||
| 5043 | try testArgs(f16, f80, -0.0); | ||
| 5044 | try testArgs(f16, f80, 0.0); | ||
| 5045 | try testArgs(f16, f80, tmin(f80)); | ||
| 5046 | try testArgs(f16, f80, fmin(f80)); | ||
| 5047 | try testArgs(f16, f80, 1e-1); | ||
| 5048 | try testArgs(f16, f80, 1e0); | ||
| 5049 | try testArgs(f16, f80, 1e1); | ||
| 5050 | try testArgs(f16, f80, fmax(f80)); | ||
| 5051 | try testArgs(f16, f80, inf(f80)); | ||
| 5052 | try testArgs(f16, f80, nan(f80)); | ||
| 5053 | |||
| 5054 | try testArgs(f32, f80, -nan(f80)); | ||
| 5055 | try testArgs(f32, f80, -inf(f80)); | ||
| 5056 | try testArgs(f32, f80, -fmax(f80)); | ||
| 5057 | try testArgs(f32, f80, -1e1); | ||
| 5058 | try testArgs(f32, f80, -1e0); | ||
| 5059 | try testArgs(f32, f80, -1e-1); | ||
| 5060 | try testArgs(f32, f80, -fmin(f80)); | ||
| 5061 | try testArgs(f32, f80, -tmin(f80)); | ||
| 5062 | try testArgs(f32, f80, -0.0); | ||
| 5063 | try testArgs(f32, f80, 0.0); | ||
| 5064 | try testArgs(f32, f80, tmin(f80)); | ||
| 5065 | try testArgs(f32, f80, fmin(f80)); | ||
| 5066 | try testArgs(f32, f80, 1e-1); | ||
| 5067 | try testArgs(f32, f80, 1e0); | ||
| 5068 | try testArgs(f32, f80, 1e1); | ||
| 5069 | try testArgs(f32, f80, fmax(f80)); | ||
| 5070 | try testArgs(f32, f80, inf(f80)); | ||
| 5071 | try testArgs(f32, f80, nan(f80)); | ||
| 5072 | |||
| 5073 | try testArgs(f64, f80, -nan(f80)); | ||
| 5074 | try testArgs(f64, f80, -inf(f80)); | ||
| 5075 | try testArgs(f64, f80, -fmax(f80)); | ||
| 5076 | try testArgs(f64, f80, -1e1); | ||
| 5077 | try testArgs(f64, f80, -1e0); | ||
| 5078 | try testArgs(f64, f80, -1e-1); | ||
| 5079 | try testArgs(f64, f80, -fmin(f80)); | ||
| 5080 | try testArgs(f64, f80, -tmin(f80)); | ||
| 5081 | try testArgs(f64, f80, -0.0); | ||
| 5082 | try testArgs(f64, f80, 0.0); | ||
| 5083 | try testArgs(f64, f80, tmin(f80)); | ||
| 5084 | try testArgs(f64, f80, fmin(f80)); | ||
| 5085 | try testArgs(f64, f80, 1e-1); | ||
| 5086 | try testArgs(f64, f80, 1e0); | ||
| 5087 | try testArgs(f64, f80, 1e1); | ||
| 5088 | try testArgs(f64, f80, fmax(f80)); | ||
| 5089 | try testArgs(f64, f80, inf(f80)); | ||
| 5090 | try testArgs(f64, f80, nan(f80)); | ||
| 5091 | |||
| 5092 | try testArgs(f80, f80, -nan(f80)); | ||
| 5093 | try testArgs(f80, f80, -inf(f80)); | ||
| 5094 | try testArgs(f80, f80, -fmax(f80)); | ||
| 5095 | try testArgs(f80, f80, -1e1); | ||
| 5096 | try testArgs(f80, f80, -1e0); | ||
| 5097 | try testArgs(f80, f80, -1e-1); | ||
| 5098 | try testArgs(f80, f80, -fmin(f80)); | ||
| 5099 | try testArgs(f80, f80, -tmin(f80)); | ||
| 5100 | try testArgs(f80, f80, -0.0); | ||
| 5101 | try testArgs(f80, f80, 0.0); | ||
| 5102 | try testArgs(f80, f80, tmin(f80)); | ||
| 5103 | try testArgs(f80, f80, fmin(f80)); | ||
| 5104 | try testArgs(f80, f80, 1e-1); | ||
| 5105 | try testArgs(f80, f80, 1e0); | ||
| 5106 | try testArgs(f80, f80, 1e1); | ||
| 5107 | try testArgs(f80, f80, fmax(f80)); | ||
| 5108 | try testArgs(f80, f80, inf(f80)); | ||
| 5109 | try testArgs(f80, f80, nan(f80)); | ||
| 5110 | |||
| 5111 | try testArgs(f128, f80, -nan(f80)); | ||
| 5112 | try testArgs(f128, f80, -inf(f80)); | ||
| 5113 | try testArgs(f128, f80, -fmax(f80)); | ||
| 5114 | try testArgs(f128, f80, -1e1); | ||
| 5115 | try testArgs(f128, f80, -1e0); | ||
| 5116 | try testArgs(f128, f80, -1e-1); | ||
| 5117 | try testArgs(f128, f80, -fmin(f80)); | ||
| 5118 | try testArgs(f128, f80, -tmin(f80)); | ||
| 5119 | try testArgs(f128, f80, -0.0); | ||
| 5120 | try testArgs(f128, f80, 0.0); | ||
| 5121 | try testArgs(f128, f80, tmin(f80)); | ||
| 5122 | try testArgs(f128, f80, fmin(f80)); | ||
| 5123 | try testArgs(f128, f80, 1e-1); | ||
| 5124 | try testArgs(f128, f80, 1e0); | ||
| 5125 | try testArgs(f128, f80, 1e1); | ||
| 5126 | try testArgs(f128, f80, fmax(f80)); | ||
| 5127 | try testArgs(f128, f80, inf(f80)); | ||
| 5128 | try testArgs(f128, f80, nan(f80)); | ||
| 5129 | |||
| 5130 | try testArgs(f16, f128, -nan(f128)); | ||
| 5131 | try testArgs(f16, f128, -inf(f128)); | ||
| 5132 | try testArgs(f16, f128, -fmax(f128)); | ||
| 5133 | try testArgs(f16, f128, -1e1); | ||
| 5134 | try testArgs(f16, f128, -1e0); | ||
| 5135 | try testArgs(f16, f128, -1e-1); | ||
| 5136 | try testArgs(f16, f128, -fmin(f128)); | ||
| 5137 | try testArgs(f16, f128, -tmin(f128)); | ||
| 5138 | try testArgs(f16, f128, -0.0); | ||
| 5139 | try testArgs(f16, f128, 0.0); | ||
| 5140 | try testArgs(f16, f128, tmin(f128)); | ||
| 5141 | try testArgs(f16, f128, fmin(f128)); | ||
| 5142 | try testArgs(f16, f128, 1e-1); | ||
| 5143 | try testArgs(f16, f128, 1e0); | ||
| 5144 | try testArgs(f16, f128, 1e1); | ||
| 5145 | try testArgs(f16, f128, fmax(f128)); | ||
| 5146 | try testArgs(f16, f128, inf(f128)); | ||
| 5147 | try testArgs(f16, f128, nan(f128)); | ||
| 5148 | |||
| 5149 | try testArgs(f32, f128, -nan(f128)); | ||
| 5150 | try testArgs(f32, f128, -inf(f128)); | ||
| 5151 | try testArgs(f32, f128, -fmax(f128)); | ||
| 5152 | try testArgs(f32, f128, -1e1); | ||
| 5153 | try testArgs(f32, f128, -1e0); | ||
| 5154 | try testArgs(f32, f128, -1e-1); | ||
| 5155 | try testArgs(f32, f128, -fmin(f128)); | ||
| 5156 | try testArgs(f32, f128, -tmin(f128)); | ||
| 5157 | try testArgs(f32, f128, -0.0); | ||
| 5158 | try testArgs(f32, f128, 0.0); | ||
| 5159 | try testArgs(f32, f128, tmin(f128)); | ||
| 5160 | try testArgs(f32, f128, fmin(f128)); | ||
| 5161 | try testArgs(f32, f128, 1e-1); | ||
| 5162 | try testArgs(f32, f128, 1e0); | ||
| 5163 | try testArgs(f32, f128, 1e1); | ||
| 5164 | try testArgs(f32, f128, fmax(f128)); | ||
| 5165 | try testArgs(f32, f128, inf(f128)); | ||
| 5166 | try testArgs(f32, f128, nan(f128)); | ||
| 5167 | |||
| 5168 | try testArgs(f64, f128, -nan(f128)); | ||
| 5169 | try testArgs(f64, f128, -inf(f128)); | ||
| 5170 | try testArgs(f64, f128, -fmax(f128)); | ||
| 5171 | try testArgs(f64, f128, -1e1); | ||
| 5172 | try testArgs(f64, f128, -1e0); | ||
| 5173 | try testArgs(f64, f128, -1e-1); | ||
| 5174 | try testArgs(f64, f128, -fmin(f128)); | ||
| 5175 | try testArgs(f64, f128, -tmin(f128)); | ||
| 5176 | try testArgs(f64, f128, -0.0); | ||
| 5177 | try testArgs(f64, f128, 0.0); | ||
| 5178 | try testArgs(f64, f128, tmin(f128)); | ||
| 5179 | try testArgs(f64, f128, fmin(f128)); | ||
| 5180 | try testArgs(f64, f128, 1e-1); | ||
| 5181 | try testArgs(f64, f128, 1e0); | ||
| 5182 | try testArgs(f64, f128, 1e1); | ||
| 5183 | try testArgs(f64, f128, fmax(f128)); | ||
| 5184 | try testArgs(f64, f128, inf(f128)); | ||
| 5185 | try testArgs(f64, f128, nan(f128)); | ||
| 5186 | |||
| 5187 | try testArgs(f80, f128, -nan(f128)); | ||
| 5188 | try testArgs(f80, f128, -inf(f128)); | ||
| 5189 | try testArgs(f80, f128, -fmax(f128)); | ||
| 5190 | try testArgs(f80, f128, -1e1); | ||
| 5191 | try testArgs(f80, f128, -1e0); | ||
| 5192 | try testArgs(f80, f128, -1e-1); | ||
| 5193 | try testArgs(f80, f128, -fmin(f128)); | ||
| 5194 | try testArgs(f80, f128, -tmin(f128)); | ||
| 5195 | try testArgs(f80, f128, -0.0); | ||
| 5196 | try testArgs(f80, f128, 0.0); | ||
| 5197 | try testArgs(f80, f128, tmin(f128)); | ||
| 5198 | try testArgs(f80, f128, fmin(f128)); | ||
| 5199 | try testArgs(f80, f128, 1e-1); | ||
| 5200 | try testArgs(f80, f128, 1e0); | ||
| 5201 | try testArgs(f80, f128, 1e1); | ||
| 5202 | try testArgs(f80, f128, fmax(f128)); | ||
| 5203 | try testArgs(f80, f128, inf(f128)); | ||
| 5204 | try testArgs(f80, f128, nan(f128)); | ||
| 5205 | |||
| 5206 | try testArgs(f128, f128, -nan(f128)); | ||
| 5207 | try testArgs(f128, f128, -inf(f128)); | ||
| 5208 | try testArgs(f128, f128, -fmax(f128)); | ||
| 5209 | try testArgs(f128, f128, -1e1); | ||
| 5210 | try testArgs(f128, f128, -1e0); | ||
| 5211 | try testArgs(f128, f128, -1e-1); | ||
| 5212 | try testArgs(f128, f128, -fmin(f128)); | ||
| 5213 | try testArgs(f128, f128, -tmin(f128)); | ||
| 5214 | try testArgs(f128, f128, -0.0); | ||
| 5215 | try testArgs(f128, f128, 0.0); | ||
| 5216 | try testArgs(f128, f128, tmin(f128)); | ||
| 5217 | try testArgs(f128, f128, fmin(f128)); | ||
| 5218 | try testArgs(f128, f128, 1e-1); | ||
| 5219 | try testArgs(f128, f128, 1e0); | ||
| 5220 | try testArgs(f128, f128, 1e1); | ||
| 5221 | try testArgs(f128, f128, fmax(f128)); | ||
| 5222 | try testArgs(f128, f128, inf(f128)); | ||
| 5223 | try testArgs(f128, f128, nan(f128)); | ||
| 5224 | } | ||
| 5225 | fn testIntVectors() !void { | ||
| 5226 | try testArgs(@Vector(1, i8), @Vector(1, i1), .{-1}); | ||
| 5227 | try testArgs(@Vector(1, u8), @Vector(1, i1), .{-1}); | ||
| 5228 | try testArgs(@Vector(1, i16), @Vector(1, i1), .{-1}); | ||
| 5229 | try testArgs(@Vector(1, u16), @Vector(1, i1), .{-1}); | ||
| 5230 | try testArgs(@Vector(1, i32), @Vector(1, i1), .{-1}); | ||
| 5231 | try testArgs(@Vector(1, u32), @Vector(1, i1), .{-1}); | ||
| 5232 | try testArgs(@Vector(1, i64), @Vector(1, i1), .{-1}); | ||
| 5233 | try testArgs(@Vector(1, u64), @Vector(1, i1), .{-1}); | ||
| 5234 | try testArgs(@Vector(1, i128), @Vector(1, i1), .{-1}); | ||
| 5235 | try testArgs(@Vector(1, u128), @Vector(1, i1), .{-1}); | ||
| 5236 | try testArgs(@Vector(1, i256), @Vector(1, i1), .{-1}); | ||
| 5237 | try testArgs(@Vector(1, u256), @Vector(1, i1), .{-1}); | ||
| 5238 | try testArgs(@Vector(1, i512), @Vector(1, i1), .{-1}); | ||
| 5239 | try testArgs(@Vector(1, u512), @Vector(1, i1), .{-1}); | ||
| 5240 | try testArgs(@Vector(1, i1024), @Vector(1, i1), .{-1}); | ||
| 5241 | try testArgs(@Vector(1, u1024), @Vector(1, i1), .{-1}); | ||
| 5242 | try testArgs(@Vector(1, i8), @Vector(1, u1), .{1}); | ||
| 5243 | try testArgs(@Vector(1, u8), @Vector(1, u1), .{1}); | ||
| 5244 | try testArgs(@Vector(1, i16), @Vector(1, u1), .{1}); | ||
| 5245 | try testArgs(@Vector(1, u16), @Vector(1, u1), .{1}); | ||
| 5246 | try testArgs(@Vector(1, i32), @Vector(1, u1), .{1}); | ||
| 5247 | try testArgs(@Vector(1, u32), @Vector(1, u1), .{1}); | ||
| 5248 | try testArgs(@Vector(1, i64), @Vector(1, u1), .{1}); | ||
| 5249 | try testArgs(@Vector(1, u64), @Vector(1, u1), .{1}); | ||
| 5250 | try testArgs(@Vector(1, i128), @Vector(1, u1), .{1}); | ||
| 5251 | try testArgs(@Vector(1, u128), @Vector(1, u1), .{1}); | ||
| 5252 | try testArgs(@Vector(1, i256), @Vector(1, u1), .{1}); | ||
| 5253 | try testArgs(@Vector(1, u256), @Vector(1, u1), .{1}); | ||
| 5254 | try testArgs(@Vector(1, i512), @Vector(1, u1), .{1}); | ||
| 5255 | try testArgs(@Vector(1, u512), @Vector(1, u1), .{1}); | ||
| 5256 | try testArgs(@Vector(1, i1024), @Vector(1, u1), .{1}); | ||
| 5257 | try testArgs(@Vector(1, u1024), @Vector(1, u1), .{1}); | ||
| 5258 | |||
| 5259 | try testArgs(@Vector(2, i8), @Vector(2, i1), .{ -1, 0 }); | ||
| 5260 | try testArgs(@Vector(2, u8), @Vector(2, i1), .{ -1, 0 }); | ||
| 5261 | try testArgs(@Vector(2, i16), @Vector(2, i1), .{ -1, 0 }); | ||
| 5262 | try testArgs(@Vector(2, u16), @Vector(2, i1), .{ -1, 0 }); | ||
| 5263 | try testArgs(@Vector(2, i32), @Vector(2, i1), .{ -1, 0 }); | ||
| 5264 | try testArgs(@Vector(2, u32), @Vector(2, i1), .{ -1, 0 }); | ||
| 5265 | try testArgs(@Vector(2, i64), @Vector(2, i1), .{ -1, 0 }); | ||
| 5266 | try testArgs(@Vector(2, u64), @Vector(2, i1), .{ -1, 0 }); | ||
| 5267 | try testArgs(@Vector(2, i128), @Vector(2, i1), .{ -1, 0 }); | ||
| 5268 | try testArgs(@Vector(2, u128), @Vector(2, i1), .{ -1, 0 }); | ||
| 5269 | try testArgs(@Vector(2, i256), @Vector(2, i1), .{ -1, 0 }); | ||
| 5270 | try testArgs(@Vector(2, u256), @Vector(2, i1), .{ -1, 0 }); | ||
| 5271 | try testArgs(@Vector(2, i512), @Vector(2, i1), .{ -1, 0 }); | ||
| 5272 | try testArgs(@Vector(2, u512), @Vector(2, i1), .{ -1, 0 }); | ||
| 5273 | try testArgs(@Vector(2, i1024), @Vector(2, i1), .{ -1, 0 }); | ||
| 5274 | try testArgs(@Vector(2, u1024), @Vector(2, i1), .{ -1, 0 }); | ||
| 5275 | try testArgs(@Vector(2, i8), @Vector(2, u1), .{ 0, 1 }); | ||
| 5276 | try testArgs(@Vector(2, u8), @Vector(2, u1), .{ 0, 1 }); | ||
| 5277 | try testArgs(@Vector(2, i16), @Vector(2, u1), .{ 0, 1 }); | ||
| 5278 | try testArgs(@Vector(2, u16), @Vector(2, u1), .{ 0, 1 }); | ||
| 5279 | try testArgs(@Vector(2, i32), @Vector(2, u1), .{ 0, 1 }); | ||
| 5280 | try testArgs(@Vector(2, u32), @Vector(2, u1), .{ 0, 1 }); | ||
| 5281 | try testArgs(@Vector(2, i64), @Vector(2, u1), .{ 0, 1 }); | ||
| 5282 | try testArgs(@Vector(2, u64), @Vector(2, u1), .{ 0, 1 }); | ||
| 5283 | try testArgs(@Vector(2, i128), @Vector(2, u1), .{ 0, 1 }); | ||
| 5284 | try testArgs(@Vector(2, u128), @Vector(2, u1), .{ 0, 1 }); | ||
| 5285 | try testArgs(@Vector(2, i256), @Vector(2, u1), .{ 0, 1 }); | ||
| 5286 | try testArgs(@Vector(2, u256), @Vector(2, u1), .{ 0, 1 }); | ||
| 5287 | try testArgs(@Vector(2, i512), @Vector(2, u1), .{ 0, 1 }); | ||
| 5288 | try testArgs(@Vector(2, u512), @Vector(2, u1), .{ 0, 1 }); | ||
| 5289 | try testArgs(@Vector(2, i1024), @Vector(2, u1), .{ 0, 1 }); | ||
| 5290 | try testArgs(@Vector(2, u1024), @Vector(2, u1), .{ 0, 1 }); | ||
| 5291 | |||
| 5292 | try testArgs(@Vector(3, i8), @Vector(3, i2), .{ -1 << 1, -1, 0 }); | ||
| 5293 | try testArgs(@Vector(3, u8), @Vector(3, i2), .{ -1 << 1, -1, 0 }); | ||
| 5294 | try testArgs(@Vector(3, i16), @Vector(3, i2), .{ -1 << 1, -1, 0 }); | ||
| 5295 | try testArgs(@Vector(3, u16), @Vector(3, i2), .{ -1 << 1, -1, 0 }); | ||
| 5296 | try testArgs(@Vector(3, i32), @Vector(3, i2), .{ -1 << 1, -1, 0 }); | ||
| 5297 | try testArgs(@Vector(3, u32), @Vector(3, i2), .{ -1 << 1, -1, 0 }); | ||
| 5298 | try testArgs(@Vector(3, i64), @Vector(3, i2), .{ -1 << 1, -1, 0 }); | ||
| 5299 | try testArgs(@Vector(3, u64), @Vector(3, i2), .{ -1 << 1, -1, 0 }); | ||
| 5300 | try testArgs(@Vector(3, i128), @Vector(3, i2), .{ -1 << 1, -1, 0 }); | ||
| 5301 | try testArgs(@Vector(3, u128), @Vector(3, i2), .{ -1 << 1, -1, 0 }); | ||
| 5302 | try testArgs(@Vector(3, i256), @Vector(3, i2), .{ -1 << 1, -1, 0 }); | ||
| 5303 | try testArgs(@Vector(3, u256), @Vector(3, i2), .{ -1 << 1, -1, 0 }); | ||
| 5304 | try testArgs(@Vector(3, i512), @Vector(3, i2), .{ -1 << 1, -1, 0 }); | ||
| 5305 | try testArgs(@Vector(3, u512), @Vector(3, i2), .{ -1 << 1, -1, 0 }); | ||
| 5306 | try testArgs(@Vector(3, i1024), @Vector(3, i2), .{ -1 << 1, -1, 0 }); | ||
| 5307 | try testArgs(@Vector(3, u1024), @Vector(3, i2), .{ -1 << 1, -1, 0 }); | ||
| 5308 | try testArgs(@Vector(3, i8), @Vector(3, u2), .{ 0, 1, 1 << 1 }); | ||
| 5309 | try testArgs(@Vector(3, u8), @Vector(3, u2), .{ 0, 1, 1 << 1 }); | ||
| 5310 | try testArgs(@Vector(3, i16), @Vector(3, u2), .{ 0, 1, 1 << 1 }); | ||
| 5311 | try testArgs(@Vector(3, u16), @Vector(3, u2), .{ 0, 1, 1 << 1 }); | ||
| 5312 | try testArgs(@Vector(3, i32), @Vector(3, u2), .{ 0, 1, 1 << 1 }); | ||
| 5313 | try testArgs(@Vector(3, u32), @Vector(3, u2), .{ 0, 1, 1 << 1 }); | ||
| 5314 | try testArgs(@Vector(3, i64), @Vector(3, u2), .{ 0, 1, 1 << 1 }); | ||
| 5315 | try testArgs(@Vector(3, u64), @Vector(3, u2), .{ 0, 1, 1 << 1 }); | ||
| 5316 | try testArgs(@Vector(3, i128), @Vector(3, u2), .{ 0, 1, 1 << 1 }); | ||
| 5317 | try testArgs(@Vector(3, u128), @Vector(3, u2), .{ 0, 1, 1 << 1 }); | ||
| 5318 | try testArgs(@Vector(3, i256), @Vector(3, u2), .{ 0, 1, 1 << 1 }); | ||
| 5319 | try testArgs(@Vector(3, u256), @Vector(3, u2), .{ 0, 1, 1 << 1 }); | ||
| 5320 | try testArgs(@Vector(3, i512), @Vector(3, u2), .{ 0, 1, 1 << 1 }); | ||
| 5321 | try testArgs(@Vector(3, u512), @Vector(3, u2), .{ 0, 1, 1 << 1 }); | ||
| 5322 | try testArgs(@Vector(3, i1024), @Vector(3, u2), .{ 0, 1, 1 << 1 }); | ||
| 5323 | try testArgs(@Vector(3, u1024), @Vector(3, u2), .{ 0, 1, 1 << 1 }); | ||
| 5324 | |||
| 5325 | try testArgs(@Vector(3, i8), @Vector(3, i3), .{ -1 << 2, -1, 0 }); | ||
| 5326 | try testArgs(@Vector(3, u8), @Vector(3, i3), .{ -1 << 2, -1, 0 }); | ||
| 5327 | try testArgs(@Vector(3, i16), @Vector(3, i3), .{ -1 << 2, -1, 0 }); | ||
| 5328 | try testArgs(@Vector(3, u16), @Vector(3, i3), .{ -1 << 2, -1, 0 }); | ||
| 5329 | try testArgs(@Vector(3, i32), @Vector(3, i3), .{ -1 << 2, -1, 0 }); | ||
| 5330 | try testArgs(@Vector(3, u32), @Vector(3, i3), .{ -1 << 2, -1, 0 }); | ||
| 5331 | try testArgs(@Vector(3, i64), @Vector(3, i3), .{ -1 << 2, -1, 0 }); | ||
| 5332 | try testArgs(@Vector(3, u64), @Vector(3, i3), .{ -1 << 2, -1, 0 }); | ||
| 5333 | try testArgs(@Vector(3, i128), @Vector(3, i3), .{ -1 << 2, -1, 0 }); | ||
| 5334 | try testArgs(@Vector(3, u128), @Vector(3, i3), .{ -1 << 2, -1, 0 }); | ||
| 5335 | try testArgs(@Vector(3, i256), @Vector(3, i3), .{ -1 << 2, -1, 0 }); | ||
| 5336 | try testArgs(@Vector(3, u256), @Vector(3, i3), .{ -1 << 2, -1, 0 }); | ||
| 5337 | try testArgs(@Vector(3, i512), @Vector(3, i3), .{ -1 << 2, -1, 0 }); | ||
| 5338 | try testArgs(@Vector(3, u512), @Vector(3, i3), .{ -1 << 2, -1, 0 }); | ||
| 5339 | try testArgs(@Vector(3, i1024), @Vector(3, i3), .{ -1 << 2, -1, 0 }); | ||
| 5340 | try testArgs(@Vector(3, u1024), @Vector(3, i3), .{ -1 << 2, -1, 0 }); | ||
| 5341 | try testArgs(@Vector(3, i8), @Vector(3, u3), .{ 0, 1, 1 << 2 }); | ||
| 5342 | try testArgs(@Vector(3, u8), @Vector(3, u3), .{ 0, 1, 1 << 2 }); | ||
| 5343 | try testArgs(@Vector(3, i16), @Vector(3, u3), .{ 0, 1, 1 << 2 }); | ||
| 5344 | try testArgs(@Vector(3, u16), @Vector(3, u3), .{ 0, 1, 1 << 2 }); | ||
| 5345 | try testArgs(@Vector(3, i32), @Vector(3, u3), .{ 0, 1, 1 << 2 }); | ||
| 5346 | try testArgs(@Vector(3, u32), @Vector(3, u3), .{ 0, 1, 1 << 2 }); | ||
| 5347 | try testArgs(@Vector(3, i64), @Vector(3, u3), .{ 0, 1, 1 << 2 }); | ||
| 5348 | try testArgs(@Vector(3, u64), @Vector(3, u3), .{ 0, 1, 1 << 2 }); | ||
| 5349 | try testArgs(@Vector(3, i128), @Vector(3, u3), .{ 0, 1, 1 << 2 }); | ||
| 5350 | try testArgs(@Vector(3, u128), @Vector(3, u3), .{ 0, 1, 1 << 2 }); | ||
| 5351 | try testArgs(@Vector(3, i256), @Vector(3, u3), .{ 0, 1, 1 << 2 }); | ||
| 5352 | try testArgs(@Vector(3, u256), @Vector(3, u3), .{ 0, 1, 1 << 2 }); | ||
| 5353 | try testArgs(@Vector(3, i512), @Vector(3, u3), .{ 0, 1, 1 << 2 }); | ||
| 5354 | try testArgs(@Vector(3, u512), @Vector(3, u3), .{ 0, 1, 1 << 2 }); | ||
| 5355 | try testArgs(@Vector(3, i1024), @Vector(3, u3), .{ 0, 1, 1 << 2 }); | ||
| 5356 | try testArgs(@Vector(3, u1024), @Vector(3, u3), .{ 0, 1, 1 << 2 }); | ||
| 5357 | |||
| 5358 | try testArgs(@Vector(3, i8), @Vector(3, i4), .{ -1 << 3, -1, 0 }); | ||
| 5359 | try testArgs(@Vector(3, u8), @Vector(3, i4), .{ -1 << 3, -1, 0 }); | ||
| 5360 | try testArgs(@Vector(3, i16), @Vector(3, i4), .{ -1 << 3, -1, 0 }); | ||
| 5361 | try testArgs(@Vector(3, u16), @Vector(3, i4), .{ -1 << 3, -1, 0 }); | ||
| 5362 | try testArgs(@Vector(3, i32), @Vector(3, i4), .{ -1 << 3, -1, 0 }); | ||
| 5363 | try testArgs(@Vector(3, u32), @Vector(3, i4), .{ -1 << 3, -1, 0 }); | ||
| 5364 | try testArgs(@Vector(3, i64), @Vector(3, i4), .{ -1 << 3, -1, 0 }); | ||
| 5365 | try testArgs(@Vector(3, u64), @Vector(3, i4), .{ -1 << 3, -1, 0 }); | ||
| 5366 | try testArgs(@Vector(3, i128), @Vector(3, i4), .{ -1 << 3, -1, 0 }); | ||
| 5367 | try testArgs(@Vector(3, u128), @Vector(3, i4), .{ -1 << 3, -1, 0 }); | ||
| 5368 | try testArgs(@Vector(3, i256), @Vector(3, i4), .{ -1 << 3, -1, 0 }); | ||
| 5369 | try testArgs(@Vector(3, u256), @Vector(3, i4), .{ -1 << 3, -1, 0 }); | ||
| 5370 | try testArgs(@Vector(3, i512), @Vector(3, i4), .{ -1 << 3, -1, 0 }); | ||
| 5371 | try testArgs(@Vector(3, u512), @Vector(3, i4), .{ -1 << 3, -1, 0 }); | ||
| 5372 | try testArgs(@Vector(3, i1024), @Vector(3, i4), .{ -1 << 3, -1, 0 }); | ||
| 5373 | try testArgs(@Vector(3, u1024), @Vector(3, i4), .{ -1 << 3, -1, 0 }); | ||
| 5374 | try testArgs(@Vector(3, i8), @Vector(3, u4), .{ 0, 1, 1 << 3 }); | ||
| 5375 | try testArgs(@Vector(3, u8), @Vector(3, u4), .{ 0, 1, 1 << 3 }); | ||
| 5376 | try testArgs(@Vector(3, i16), @Vector(3, u4), .{ 0, 1, 1 << 3 }); | ||
| 5377 | try testArgs(@Vector(3, u16), @Vector(3, u4), .{ 0, 1, 1 << 3 }); | ||
| 5378 | try testArgs(@Vector(3, i32), @Vector(3, u4), .{ 0, 1, 1 << 3 }); | ||
| 5379 | try testArgs(@Vector(3, u32), @Vector(3, u4), .{ 0, 1, 1 << 3 }); | ||
| 5380 | try testArgs(@Vector(3, i64), @Vector(3, u4), .{ 0, 1, 1 << 3 }); | ||
| 5381 | try testArgs(@Vector(3, u64), @Vector(3, u4), .{ 0, 1, 1 << 3 }); | ||
| 5382 | try testArgs(@Vector(3, i128), @Vector(3, u4), .{ 0, 1, 1 << 3 }); | ||
| 5383 | try testArgs(@Vector(3, u128), @Vector(3, u4), .{ 0, 1, 1 << 3 }); | ||
| 5384 | try testArgs(@Vector(3, i256), @Vector(3, u4), .{ 0, 1, 1 << 3 }); | ||
| 5385 | try testArgs(@Vector(3, u256), @Vector(3, u4), .{ 0, 1, 1 << 3 }); | ||
| 5386 | try testArgs(@Vector(3, i512), @Vector(3, u4), .{ 0, 1, 1 << 3 }); | ||
| 5387 | try testArgs(@Vector(3, u512), @Vector(3, u4), .{ 0, 1, 1 << 3 }); | ||
| 5388 | try testArgs(@Vector(3, i1024), @Vector(3, u4), .{ 0, 1, 1 << 3 }); | ||
| 5389 | try testArgs(@Vector(3, u1024), @Vector(3, u4), .{ 0, 1, 1 << 3 }); | ||
| 5390 | |||
| 5391 | try testArgs(@Vector(3, i8), @Vector(3, i5), .{ -1 << 4, -1, 0 }); | ||
| 5392 | try testArgs(@Vector(3, u8), @Vector(3, i5), .{ -1 << 4, -1, 0 }); | ||
| 5393 | try testArgs(@Vector(3, i16), @Vector(3, i5), .{ -1 << 4, -1, 0 }); | ||
| 5394 | try testArgs(@Vector(3, u16), @Vector(3, i5), .{ -1 << 4, -1, 0 }); | ||
| 5395 | try testArgs(@Vector(3, i32), @Vector(3, i5), .{ -1 << 4, -1, 0 }); | ||
| 5396 | try testArgs(@Vector(3, u32), @Vector(3, i5), .{ -1 << 4, -1, 0 }); | ||
| 5397 | try testArgs(@Vector(3, i64), @Vector(3, i5), .{ -1 << 4, -1, 0 }); | ||
| 5398 | try testArgs(@Vector(3, u64), @Vector(3, i5), .{ -1 << 4, -1, 0 }); | ||
| 5399 | try testArgs(@Vector(3, i128), @Vector(3, i5), .{ -1 << 4, -1, 0 }); | ||
| 5400 | try testArgs(@Vector(3, u128), @Vector(3, i5), .{ -1 << 4, -1, 0 }); | ||
| 5401 | try testArgs(@Vector(3, i256), @Vector(3, i5), .{ -1 << 4, -1, 0 }); | ||
| 5402 | try testArgs(@Vector(3, u256), @Vector(3, i5), .{ -1 << 4, -1, 0 }); | ||
| 5403 | try testArgs(@Vector(3, i512), @Vector(3, i5), .{ -1 << 4, -1, 0 }); | ||
| 5404 | try testArgs(@Vector(3, u512), @Vector(3, i5), .{ -1 << 4, -1, 0 }); | ||
| 5405 | try testArgs(@Vector(3, i1024), @Vector(3, i5), .{ -1 << 4, -1, 0 }); | ||
| 5406 | try testArgs(@Vector(3, u1024), @Vector(3, i5), .{ -1 << 4, -1, 0 }); | ||
| 5407 | try testArgs(@Vector(3, i8), @Vector(3, u5), .{ 0, 1, 1 << 4 }); | ||
| 5408 | try testArgs(@Vector(3, u8), @Vector(3, u5), .{ 0, 1, 1 << 4 }); | ||
| 5409 | try testArgs(@Vector(3, i16), @Vector(3, u5), .{ 0, 1, 1 << 4 }); | ||
| 5410 | try testArgs(@Vector(3, u16), @Vector(3, u5), .{ 0, 1, 1 << 4 }); | ||
| 5411 | try testArgs(@Vector(3, i32), @Vector(3, u5), .{ 0, 1, 1 << 4 }); | ||
| 5412 | try testArgs(@Vector(3, u32), @Vector(3, u5), .{ 0, 1, 1 << 4 }); | ||
| 5413 | try testArgs(@Vector(3, i64), @Vector(3, u5), .{ 0, 1, 1 << 4 }); | ||
| 5414 | try testArgs(@Vector(3, u64), @Vector(3, u5), .{ 0, 1, 1 << 4 }); | ||
| 5415 | try testArgs(@Vector(3, i128), @Vector(3, u5), .{ 0, 1, 1 << 4 }); | ||
| 5416 | try testArgs(@Vector(3, u128), @Vector(3, u5), .{ 0, 1, 1 << 4 }); | ||
| 5417 | try testArgs(@Vector(3, i256), @Vector(3, u5), .{ 0, 1, 1 << 4 }); | ||
| 5418 | try testArgs(@Vector(3, u256), @Vector(3, u5), .{ 0, 1, 1 << 4 }); | ||
| 5419 | try testArgs(@Vector(3, i512), @Vector(3, u5), .{ 0, 1, 1 << 4 }); | ||
| 5420 | try testArgs(@Vector(3, u512), @Vector(3, u5), .{ 0, 1, 1 << 4 }); | ||
| 5421 | try testArgs(@Vector(3, i1024), @Vector(3, u5), .{ 0, 1, 1 << 4 }); | ||
| 5422 | try testArgs(@Vector(3, u1024), @Vector(3, u5), .{ 0, 1, 1 << 4 }); | ||
| 5423 | |||
| 5424 | try testArgs(@Vector(3, i8), @Vector(3, i7), .{ -1 << 6, -1, 0 }); | ||
| 5425 | try testArgs(@Vector(3, u8), @Vector(3, i7), .{ -1 << 6, -1, 0 }); | ||
| 5426 | try testArgs(@Vector(3, i16), @Vector(3, i7), .{ -1 << 6, -1, 0 }); | ||
| 5427 | try testArgs(@Vector(3, u16), @Vector(3, i7), .{ -1 << 6, -1, 0 }); | ||
| 5428 | try testArgs(@Vector(3, i32), @Vector(3, i7), .{ -1 << 6, -1, 0 }); | ||
| 5429 | try testArgs(@Vector(3, u32), @Vector(3, i7), .{ -1 << 6, -1, 0 }); | ||
| 5430 | try testArgs(@Vector(3, i64), @Vector(3, i7), .{ -1 << 6, -1, 0 }); | ||
| 5431 | try testArgs(@Vector(3, u64), @Vector(3, i7), .{ -1 << 6, -1, 0 }); | ||
| 5432 | try testArgs(@Vector(3, i128), @Vector(3, i7), .{ -1 << 6, -1, 0 }); | ||
| 5433 | try testArgs(@Vector(3, u128), @Vector(3, i7), .{ -1 << 6, -1, 0 }); | ||
| 5434 | try testArgs(@Vector(3, i256), @Vector(3, i7), .{ -1 << 6, -1, 0 }); | ||
| 5435 | try testArgs(@Vector(3, u256), @Vector(3, i7), .{ -1 << 6, -1, 0 }); | ||
| 5436 | try testArgs(@Vector(3, i512), @Vector(3, i7), .{ -1 << 6, -1, 0 }); | ||
| 5437 | try testArgs(@Vector(3, u512), @Vector(3, i7), .{ -1 << 6, -1, 0 }); | ||
| 5438 | try testArgs(@Vector(3, i1024), @Vector(3, i7), .{ -1 << 6, -1, 0 }); | ||
| 5439 | try testArgs(@Vector(3, u1024), @Vector(3, i7), .{ -1 << 6, -1, 0 }); | ||
| 5440 | try testArgs(@Vector(3, i8), @Vector(3, u7), .{ 0, 1, 1 << 6 }); | ||
| 5441 | try testArgs(@Vector(3, u8), @Vector(3, u7), .{ 0, 1, 1 << 6 }); | ||
| 5442 | try testArgs(@Vector(3, i16), @Vector(3, u7), .{ 0, 1, 1 << 6 }); | ||
| 5443 | try testArgs(@Vector(3, u16), @Vector(3, u7), .{ 0, 1, 1 << 6 }); | ||
| 5444 | try testArgs(@Vector(3, i32), @Vector(3, u7), .{ 0, 1, 1 << 6 }); | ||
| 5445 | try testArgs(@Vector(3, u32), @Vector(3, u7), .{ 0, 1, 1 << 6 }); | ||
| 5446 | try testArgs(@Vector(3, i64), @Vector(3, u7), .{ 0, 1, 1 << 6 }); | ||
| 5447 | try testArgs(@Vector(3, u64), @Vector(3, u7), .{ 0, 1, 1 << 6 }); | ||
| 5448 | try testArgs(@Vector(3, i128), @Vector(3, u7), .{ 0, 1, 1 << 6 }); | ||
| 5449 | try testArgs(@Vector(3, u128), @Vector(3, u7), .{ 0, 1, 1 << 6 }); | ||
| 5450 | try testArgs(@Vector(3, i256), @Vector(3, u7), .{ 0, 1, 1 << 6 }); | ||
| 5451 | try testArgs(@Vector(3, u256), @Vector(3, u7), .{ 0, 1, 1 << 6 }); | ||
| 5452 | try testArgs(@Vector(3, i512), @Vector(3, u7), .{ 0, 1, 1 << 6 }); | ||
| 5453 | try testArgs(@Vector(3, u512), @Vector(3, u7), .{ 0, 1, 1 << 6 }); | ||
| 5454 | try testArgs(@Vector(3, i1024), @Vector(3, u7), .{ 0, 1, 1 << 6 }); | ||
| 5455 | try testArgs(@Vector(3, u1024), @Vector(3, u7), .{ 0, 1, 1 << 6 }); | ||
| 5456 | |||
| 5457 | try testArgs(@Vector(3, i8), @Vector(3, i8), .{ -1 << 7, -1, 0 }); | ||
| 5458 | try testArgs(@Vector(3, u8), @Vector(3, i8), .{ -1 << 7, -1, 0 }); | ||
| 5459 | try testArgs(@Vector(3, i16), @Vector(3, i8), .{ -1 << 7, -1, 0 }); | ||
| 5460 | try testArgs(@Vector(3, u16), @Vector(3, i8), .{ -1 << 7, -1, 0 }); | ||
| 5461 | try testArgs(@Vector(3, i32), @Vector(3, i8), .{ -1 << 7, -1, 0 }); | ||
| 5462 | try testArgs(@Vector(3, u32), @Vector(3, i8), .{ -1 << 7, -1, 0 }); | ||
| 5463 | try testArgs(@Vector(3, i64), @Vector(3, i8), .{ -1 << 7, -1, 0 }); | ||
| 5464 | try testArgs(@Vector(3, u64), @Vector(3, i8), .{ -1 << 7, -1, 0 }); | ||
| 5465 | try testArgs(@Vector(3, i128), @Vector(3, i8), .{ -1 << 7, -1, 0 }); | ||
| 5466 | try testArgs(@Vector(3, u128), @Vector(3, i8), .{ -1 << 7, -1, 0 }); | ||
| 5467 | try testArgs(@Vector(3, i256), @Vector(3, i8), .{ -1 << 7, -1, 0 }); | ||
| 5468 | try testArgs(@Vector(3, u256), @Vector(3, i8), .{ -1 << 7, -1, 0 }); | ||
| 5469 | try testArgs(@Vector(3, i512), @Vector(3, i8), .{ -1 << 7, -1, 0 }); | ||
| 5470 | try testArgs(@Vector(3, u512), @Vector(3, i8), .{ -1 << 7, -1, 0 }); | ||
| 5471 | try testArgs(@Vector(3, i1024), @Vector(3, i8), .{ -1 << 7, -1, 0 }); | ||
| 5472 | try testArgs(@Vector(3, u1024), @Vector(3, i8), .{ -1 << 7, -1, 0 }); | ||
| 5473 | try testArgs(@Vector(3, i8), @Vector(3, u8), .{ 0, 1, 1 << 7 }); | ||
| 5474 | try testArgs(@Vector(3, u8), @Vector(3, u8), .{ 0, 1, 1 << 7 }); | ||
| 5475 | try testArgs(@Vector(3, i16), @Vector(3, u8), .{ 0, 1, 1 << 7 }); | ||
| 5476 | try testArgs(@Vector(3, u16), @Vector(3, u8), .{ 0, 1, 1 << 7 }); | ||
| 5477 | try testArgs(@Vector(3, i32), @Vector(3, u8), .{ 0, 1, 1 << 7 }); | ||
| 5478 | try testArgs(@Vector(3, u32), @Vector(3, u8), .{ 0, 1, 1 << 7 }); | ||
| 5479 | try testArgs(@Vector(3, i64), @Vector(3, u8), .{ 0, 1, 1 << 7 }); | ||
| 5480 | try testArgs(@Vector(3, u64), @Vector(3, u8), .{ 0, 1, 1 << 7 }); | ||
| 5481 | try testArgs(@Vector(3, i128), @Vector(3, u8), .{ 0, 1, 1 << 7 }); | ||
| 5482 | try testArgs(@Vector(3, u128), @Vector(3, u8), .{ 0, 1, 1 << 7 }); | ||
| 5483 | try testArgs(@Vector(3, i256), @Vector(3, u8), .{ 0, 1, 1 << 7 }); | ||
| 5484 | try testArgs(@Vector(3, u256), @Vector(3, u8), .{ 0, 1, 1 << 7 }); | ||
| 5485 | try testArgs(@Vector(3, i512), @Vector(3, u8), .{ 0, 1, 1 << 7 }); | ||
| 5486 | try testArgs(@Vector(3, u512), @Vector(3, u8), .{ 0, 1, 1 << 7 }); | ||
| 5487 | try testArgs(@Vector(3, i1024), @Vector(3, u8), .{ 0, 1, 1 << 7 }); | ||
| 5488 | try testArgs(@Vector(3, u1024), @Vector(3, u8), .{ 0, 1, 1 << 7 }); | ||
| 5489 | |||
| 5490 | try testArgs(@Vector(3, i8), @Vector(3, i9), .{ -1 << 8, -1, 0 }); | ||
| 5491 | try testArgs(@Vector(3, u8), @Vector(3, i9), .{ -1 << 8, -1, 0 }); | ||
| 5492 | try testArgs(@Vector(3, i16), @Vector(3, i9), .{ -1 << 8, -1, 0 }); | ||
| 5493 | try testArgs(@Vector(3, u16), @Vector(3, i9), .{ -1 << 8, -1, 0 }); | ||
| 5494 | try testArgs(@Vector(3, i32), @Vector(3, i9), .{ -1 << 8, -1, 0 }); | ||
| 5495 | try testArgs(@Vector(3, u32), @Vector(3, i9), .{ -1 << 8, -1, 0 }); | ||
| 5496 | try testArgs(@Vector(3, i64), @Vector(3, i9), .{ -1 << 8, -1, 0 }); | ||
| 5497 | try testArgs(@Vector(3, u64), @Vector(3, i9), .{ -1 << 8, -1, 0 }); | ||
| 5498 | try testArgs(@Vector(3, i128), @Vector(3, i9), .{ -1 << 8, -1, 0 }); | ||
| 5499 | try testArgs(@Vector(3, u128), @Vector(3, i9), .{ -1 << 8, -1, 0 }); | ||
| 5500 | try testArgs(@Vector(3, i256), @Vector(3, i9), .{ -1 << 8, -1, 0 }); | ||
| 5501 | try testArgs(@Vector(3, u256), @Vector(3, i9), .{ -1 << 8, -1, 0 }); | ||
| 5502 | try testArgs(@Vector(3, i512), @Vector(3, i9), .{ -1 << 8, -1, 0 }); | ||
| 5503 | try testArgs(@Vector(3, u512), @Vector(3, i9), .{ -1 << 8, -1, 0 }); | ||
| 5504 | try testArgs(@Vector(3, i1024), @Vector(3, i9), .{ -1 << 8, -1, 0 }); | ||
| 5505 | try testArgs(@Vector(3, u1024), @Vector(3, i9), .{ -1 << 8, -1, 0 }); | ||
| 5506 | try testArgs(@Vector(3, i8), @Vector(3, u9), .{ 0, 1, 1 << 8 }); | ||
| 5507 | try testArgs(@Vector(3, u8), @Vector(3, u9), .{ 0, 1, 1 << 8 }); | ||
| 5508 | try testArgs(@Vector(3, i16), @Vector(3, u9), .{ 0, 1, 1 << 8 }); | ||
| 5509 | try testArgs(@Vector(3, u16), @Vector(3, u9), .{ 0, 1, 1 << 8 }); | ||
| 5510 | try testArgs(@Vector(3, i32), @Vector(3, u9), .{ 0, 1, 1 << 8 }); | ||
| 5511 | try testArgs(@Vector(3, u32), @Vector(3, u9), .{ 0, 1, 1 << 8 }); | ||
| 5512 | try testArgs(@Vector(3, i64), @Vector(3, u9), .{ 0, 1, 1 << 8 }); | ||
| 5513 | try testArgs(@Vector(3, u64), @Vector(3, u9), .{ 0, 1, 1 << 8 }); | ||
| 5514 | try testArgs(@Vector(3, i128), @Vector(3, u9), .{ 0, 1, 1 << 8 }); | ||
| 5515 | try testArgs(@Vector(3, u128), @Vector(3, u9), .{ 0, 1, 1 << 8 }); | ||
| 5516 | try testArgs(@Vector(3, i256), @Vector(3, u9), .{ 0, 1, 1 << 8 }); | ||
| 5517 | try testArgs(@Vector(3, u256), @Vector(3, u9), .{ 0, 1, 1 << 8 }); | ||
| 5518 | try testArgs(@Vector(3, i512), @Vector(3, u9), .{ 0, 1, 1 << 8 }); | ||
| 5519 | try testArgs(@Vector(3, u512), @Vector(3, u9), .{ 0, 1, 1 << 8 }); | ||
| 5520 | try testArgs(@Vector(3, i1024), @Vector(3, u9), .{ 0, 1, 1 << 8 }); | ||
| 5521 | try testArgs(@Vector(3, u1024), @Vector(3, u9), .{ 0, 1, 1 << 8 }); | ||
| 5522 | |||
| 5523 | try testArgs(@Vector(3, i8), @Vector(3, i15), .{ -1 << 14, -1, 0 }); | ||
| 5524 | try testArgs(@Vector(3, u8), @Vector(3, i15), .{ -1 << 14, -1, 0 }); | ||
| 5525 | try testArgs(@Vector(3, i16), @Vector(3, i15), .{ -1 << 14, -1, 0 }); | ||
| 5526 | try testArgs(@Vector(3, u16), @Vector(3, i15), .{ -1 << 14, -1, 0 }); | ||
| 5527 | try testArgs(@Vector(3, i32), @Vector(3, i15), .{ -1 << 14, -1, 0 }); | ||
| 5528 | try testArgs(@Vector(3, u32), @Vector(3, i15), .{ -1 << 14, -1, 0 }); | ||
| 5529 | try testArgs(@Vector(3, i64), @Vector(3, i15), .{ -1 << 14, -1, 0 }); | ||
| 5530 | try testArgs(@Vector(3, u64), @Vector(3, i15), .{ -1 << 14, -1, 0 }); | ||
| 5531 | try testArgs(@Vector(3, i128), @Vector(3, i15), .{ -1 << 14, -1, 0 }); | ||
| 5532 | try testArgs(@Vector(3, u128), @Vector(3, i15), .{ -1 << 14, -1, 0 }); | ||
| 5533 | try testArgs(@Vector(3, i256), @Vector(3, i15), .{ -1 << 14, -1, 0 }); | ||
| 5534 | try testArgs(@Vector(3, u256), @Vector(3, i15), .{ -1 << 14, -1, 0 }); | ||
| 5535 | try testArgs(@Vector(3, i512), @Vector(3, i15), .{ -1 << 14, -1, 0 }); | ||
| 5536 | try testArgs(@Vector(3, u512), @Vector(3, i15), .{ -1 << 14, -1, 0 }); | ||
| 5537 | try testArgs(@Vector(3, i1024), @Vector(3, i15), .{ -1 << 14, -1, 0 }); | ||
| 5538 | try testArgs(@Vector(3, u1024), @Vector(3, i15), .{ -1 << 14, -1, 0 }); | ||
| 5539 | try testArgs(@Vector(3, i8), @Vector(3, u15), .{ 0, 1, 1 << 14 }); | ||
| 5540 | try testArgs(@Vector(3, u8), @Vector(3, u15), .{ 0, 1, 1 << 14 }); | ||
| 5541 | try testArgs(@Vector(3, i16), @Vector(3, u15), .{ 0, 1, 1 << 14 }); | ||
| 5542 | try testArgs(@Vector(3, u16), @Vector(3, u15), .{ 0, 1, 1 << 14 }); | ||
| 5543 | try testArgs(@Vector(3, i32), @Vector(3, u15), .{ 0, 1, 1 << 14 }); | ||
| 5544 | try testArgs(@Vector(3, u32), @Vector(3, u15), .{ 0, 1, 1 << 14 }); | ||
| 5545 | try testArgs(@Vector(3, i64), @Vector(3, u15), .{ 0, 1, 1 << 14 }); | ||
| 5546 | try testArgs(@Vector(3, u64), @Vector(3, u15), .{ 0, 1, 1 << 14 }); | ||
| 5547 | try testArgs(@Vector(3, i128), @Vector(3, u15), .{ 0, 1, 1 << 14 }); | ||
| 5548 | try testArgs(@Vector(3, u128), @Vector(3, u15), .{ 0, 1, 1 << 14 }); | ||
| 5549 | try testArgs(@Vector(3, i256), @Vector(3, u15), .{ 0, 1, 1 << 14 }); | ||
| 5550 | try testArgs(@Vector(3, u256), @Vector(3, u15), .{ 0, 1, 1 << 14 }); | ||
| 5551 | try testArgs(@Vector(3, i512), @Vector(3, u15), .{ 0, 1, 1 << 14 }); | ||
| 5552 | try testArgs(@Vector(3, u512), @Vector(3, u15), .{ 0, 1, 1 << 14 }); | ||
| 5553 | try testArgs(@Vector(3, i1024), @Vector(3, u15), .{ 0, 1, 1 << 14 }); | ||
| 5554 | try testArgs(@Vector(3, u1024), @Vector(3, u15), .{ 0, 1, 1 << 14 }); | ||
| 5555 | |||
| 5556 | try testArgs(@Vector(3, i8), @Vector(3, i16), .{ -1 << 15, -1, 0 }); | ||
| 5557 | try testArgs(@Vector(3, u8), @Vector(3, i16), .{ -1 << 15, -1, 0 }); | ||
| 5558 | try testArgs(@Vector(3, i16), @Vector(3, i16), .{ -1 << 15, -1, 0 }); | ||
| 5559 | try testArgs(@Vector(3, u16), @Vector(3, i16), .{ -1 << 15, -1, 0 }); | ||
| 5560 | try testArgs(@Vector(3, i32), @Vector(3, i16), .{ -1 << 15, -1, 0 }); | ||
| 5561 | try testArgs(@Vector(3, u32), @Vector(3, i16), .{ -1 << 15, -1, 0 }); | ||
| 5562 | try testArgs(@Vector(3, i64), @Vector(3, i16), .{ -1 << 15, -1, 0 }); | ||
| 5563 | try testArgs(@Vector(3, u64), @Vector(3, i16), .{ -1 << 15, -1, 0 }); | ||
| 5564 | try testArgs(@Vector(3, i128), @Vector(3, i16), .{ -1 << 15, -1, 0 }); | ||
| 5565 | try testArgs(@Vector(3, u128), @Vector(3, i16), .{ -1 << 15, -1, 0 }); | ||
| 5566 | try testArgs(@Vector(3, i256), @Vector(3, i16), .{ -1 << 15, -1, 0 }); | ||
| 5567 | try testArgs(@Vector(3, u256), @Vector(3, i16), .{ -1 << 15, -1, 0 }); | ||
| 5568 | try testArgs(@Vector(3, i512), @Vector(3, i16), .{ -1 << 15, -1, 0 }); | ||
| 5569 | try testArgs(@Vector(3, u512), @Vector(3, i16), .{ -1 << 15, -1, 0 }); | ||
| 5570 | try testArgs(@Vector(3, i1024), @Vector(3, i16), .{ -1 << 15, -1, 0 }); | ||
| 5571 | try testArgs(@Vector(3, u1024), @Vector(3, i16), .{ -1 << 15, -1, 0 }); | ||
| 5572 | try testArgs(@Vector(3, i8), @Vector(3, u16), .{ 0, 1, 1 << 15 }); | ||
| 5573 | try testArgs(@Vector(3, u8), @Vector(3, u16), .{ 0, 1, 1 << 15 }); | ||
| 5574 | try testArgs(@Vector(3, i16), @Vector(3, u16), .{ 0, 1, 1 << 15 }); | ||
| 5575 | try testArgs(@Vector(3, u16), @Vector(3, u16), .{ 0, 1, 1 << 15 }); | ||
| 5576 | try testArgs(@Vector(3, i32), @Vector(3, u16), .{ 0, 1, 1 << 15 }); | ||
| 5577 | try testArgs(@Vector(3, u32), @Vector(3, u16), .{ 0, 1, 1 << 15 }); | ||
| 5578 | try testArgs(@Vector(3, i64), @Vector(3, u16), .{ 0, 1, 1 << 15 }); | ||
| 5579 | try testArgs(@Vector(3, u64), @Vector(3, u16), .{ 0, 1, 1 << 15 }); | ||
| 5580 | try testArgs(@Vector(3, i128), @Vector(3, u16), .{ 0, 1, 1 << 15 }); | ||
| 5581 | try testArgs(@Vector(3, u128), @Vector(3, u16), .{ 0, 1, 1 << 15 }); | ||
| 5582 | try testArgs(@Vector(3, i256), @Vector(3, u16), .{ 0, 1, 1 << 15 }); | ||
| 5583 | try testArgs(@Vector(3, u256), @Vector(3, u16), .{ 0, 1, 1 << 15 }); | ||
| 5584 | try testArgs(@Vector(3, i512), @Vector(3, u16), .{ 0, 1, 1 << 15 }); | ||
| 5585 | try testArgs(@Vector(3, u512), @Vector(3, u16), .{ 0, 1, 1 << 15 }); | ||
| 5586 | try testArgs(@Vector(3, i1024), @Vector(3, u16), .{ 0, 1, 1 << 15 }); | ||
| 5587 | try testArgs(@Vector(3, u1024), @Vector(3, u16), .{ 0, 1, 1 << 15 }); | ||
| 5588 | |||
| 5589 | try testArgs(@Vector(3, i8), @Vector(3, i17), .{ -1 << 16, -1, 0 }); | ||
| 5590 | try testArgs(@Vector(3, u8), @Vector(3, i17), .{ -1 << 16, -1, 0 }); | ||
| 5591 | try testArgs(@Vector(3, i16), @Vector(3, i17), .{ -1 << 16, -1, 0 }); | ||
| 5592 | try testArgs(@Vector(3, u16), @Vector(3, i17), .{ -1 << 16, -1, 0 }); | ||
| 5593 | try testArgs(@Vector(3, i32), @Vector(3, i17), .{ -1 << 16, -1, 0 }); | ||
| 5594 | try testArgs(@Vector(3, u32), @Vector(3, i17), .{ -1 << 16, -1, 0 }); | ||
| 5595 | try testArgs(@Vector(3, i64), @Vector(3, i17), .{ -1 << 16, -1, 0 }); | ||
| 5596 | try testArgs(@Vector(3, u64), @Vector(3, i17), .{ -1 << 16, -1, 0 }); | ||
| 5597 | try testArgs(@Vector(3, i128), @Vector(3, i17), .{ -1 << 16, -1, 0 }); | ||
| 5598 | try testArgs(@Vector(3, u128), @Vector(3, i17), .{ -1 << 16, -1, 0 }); | ||
| 5599 | try testArgs(@Vector(3, i256), @Vector(3, i17), .{ -1 << 16, -1, 0 }); | ||
| 5600 | try testArgs(@Vector(3, u256), @Vector(3, i17), .{ -1 << 16, -1, 0 }); | ||
| 5601 | try testArgs(@Vector(3, i512), @Vector(3, i17), .{ -1 << 16, -1, 0 }); | ||
| 5602 | try testArgs(@Vector(3, u512), @Vector(3, i17), .{ -1 << 16, -1, 0 }); | ||
| 5603 | try testArgs(@Vector(3, i1024), @Vector(3, i17), .{ -1 << 16, -1, 0 }); | ||
| 5604 | try testArgs(@Vector(3, u1024), @Vector(3, i17), .{ -1 << 16, -1, 0 }); | ||
| 5605 | try testArgs(@Vector(3, i8), @Vector(3, u17), .{ 0, 1, 1 << 16 }); | ||
| 5606 | try testArgs(@Vector(3, u8), @Vector(3, u17), .{ 0, 1, 1 << 16 }); | ||
| 5607 | try testArgs(@Vector(3, i16), @Vector(3, u17), .{ 0, 1, 1 << 16 }); | ||
| 5608 | try testArgs(@Vector(3, u16), @Vector(3, u17), .{ 0, 1, 1 << 16 }); | ||
| 5609 | try testArgs(@Vector(3, i32), @Vector(3, u17), .{ 0, 1, 1 << 16 }); | ||
| 5610 | try testArgs(@Vector(3, u32), @Vector(3, u17), .{ 0, 1, 1 << 16 }); | ||
| 5611 | try testArgs(@Vector(3, i64), @Vector(3, u17), .{ 0, 1, 1 << 16 }); | ||
| 5612 | try testArgs(@Vector(3, u64), @Vector(3, u17), .{ 0, 1, 1 << 16 }); | ||
| 5613 | try testArgs(@Vector(3, i128), @Vector(3, u17), .{ 0, 1, 1 << 16 }); | ||
| 5614 | try testArgs(@Vector(3, u128), @Vector(3, u17), .{ 0, 1, 1 << 16 }); | ||
| 5615 | try testArgs(@Vector(3, i256), @Vector(3, u17), .{ 0, 1, 1 << 16 }); | ||
| 5616 | try testArgs(@Vector(3, u256), @Vector(3, u17), .{ 0, 1, 1 << 16 }); | ||
| 5617 | try testArgs(@Vector(3, i512), @Vector(3, u17), .{ 0, 1, 1 << 16 }); | ||
| 5618 | try testArgs(@Vector(3, u512), @Vector(3, u17), .{ 0, 1, 1 << 16 }); | ||
| 5619 | try testArgs(@Vector(3, i1024), @Vector(3, u17), .{ 0, 1, 1 << 16 }); | ||
| 5620 | try testArgs(@Vector(3, u1024), @Vector(3, u17), .{ 0, 1, 1 << 16 }); | ||
| 5621 | |||
| 5622 | try testArgs(@Vector(3, i8), @Vector(3, i31), .{ -1 << 30, -1, 0 }); | ||
| 5623 | try testArgs(@Vector(3, u8), @Vector(3, i31), .{ -1 << 30, -1, 0 }); | ||
| 5624 | try testArgs(@Vector(3, i16), @Vector(3, i31), .{ -1 << 30, -1, 0 }); | ||
| 5625 | try testArgs(@Vector(3, u16), @Vector(3, i31), .{ -1 << 30, -1, 0 }); | ||
| 5626 | try testArgs(@Vector(3, i32), @Vector(3, i31), .{ -1 << 30, -1, 0 }); | ||
| 5627 | try testArgs(@Vector(3, u32), @Vector(3, i31), .{ -1 << 30, -1, 0 }); | ||
| 5628 | try testArgs(@Vector(3, i64), @Vector(3, i31), .{ -1 << 30, -1, 0 }); | ||
| 5629 | try testArgs(@Vector(3, u64), @Vector(3, i31), .{ -1 << 30, -1, 0 }); | ||
| 5630 | try testArgs(@Vector(3, i128), @Vector(3, i31), .{ -1 << 30, -1, 0 }); | ||
| 5631 | try testArgs(@Vector(3, u128), @Vector(3, i31), .{ -1 << 30, -1, 0 }); | ||
| 5632 | try testArgs(@Vector(3, i256), @Vector(3, i31), .{ -1 << 30, -1, 0 }); | ||
| 5633 | try testArgs(@Vector(3, u256), @Vector(3, i31), .{ -1 << 30, -1, 0 }); | ||
| 5634 | try testArgs(@Vector(3, i512), @Vector(3, i31), .{ -1 << 30, -1, 0 }); | ||
| 5635 | try testArgs(@Vector(3, u512), @Vector(3, i31), .{ -1 << 30, -1, 0 }); | ||
| 5636 | try testArgs(@Vector(3, i1024), @Vector(3, i31), .{ -1 << 30, -1, 0 }); | ||
| 5637 | try testArgs(@Vector(3, u1024), @Vector(3, i31), .{ -1 << 30, -1, 0 }); | ||
| 5638 | try testArgs(@Vector(3, i8), @Vector(3, u31), .{ 0, 1, 1 << 30 }); | ||
| 5639 | try testArgs(@Vector(3, u8), @Vector(3, u31), .{ 0, 1, 1 << 30 }); | ||
| 5640 | try testArgs(@Vector(3, i16), @Vector(3, u31), .{ 0, 1, 1 << 30 }); | ||
| 5641 | try testArgs(@Vector(3, u16), @Vector(3, u31), .{ 0, 1, 1 << 30 }); | ||
| 5642 | try testArgs(@Vector(3, i32), @Vector(3, u31), .{ 0, 1, 1 << 30 }); | ||
| 5643 | try testArgs(@Vector(3, u32), @Vector(3, u31), .{ 0, 1, 1 << 30 }); | ||
| 5644 | try testArgs(@Vector(3, i64), @Vector(3, u31), .{ 0, 1, 1 << 30 }); | ||
| 5645 | try testArgs(@Vector(3, u64), @Vector(3, u31), .{ 0, 1, 1 << 30 }); | ||
| 5646 | try testArgs(@Vector(3, i128), @Vector(3, u31), .{ 0, 1, 1 << 30 }); | ||
| 5647 | try testArgs(@Vector(3, u128), @Vector(3, u31), .{ 0, 1, 1 << 30 }); | ||
| 5648 | try testArgs(@Vector(3, i256), @Vector(3, u31), .{ 0, 1, 1 << 30 }); | ||
| 5649 | try testArgs(@Vector(3, u256), @Vector(3, u31), .{ 0, 1, 1 << 30 }); | ||
| 5650 | try testArgs(@Vector(3, i512), @Vector(3, u31), .{ 0, 1, 1 << 30 }); | ||
| 5651 | try testArgs(@Vector(3, u512), @Vector(3, u31), .{ 0, 1, 1 << 30 }); | ||
| 5652 | try testArgs(@Vector(3, i1024), @Vector(3, u31), .{ 0, 1, 1 << 30 }); | ||
| 5653 | try testArgs(@Vector(3, u1024), @Vector(3, u31), .{ 0, 1, 1 << 30 }); | ||
| 5654 | |||
| 5655 | try testArgs(@Vector(3, i8), @Vector(3, i32), .{ -1 << 31, -1, 0 }); | ||
| 5656 | try testArgs(@Vector(3, u8), @Vector(3, i32), .{ -1 << 31, -1, 0 }); | ||
| 5657 | try testArgs(@Vector(3, i16), @Vector(3, i32), .{ -1 << 31, -1, 0 }); | ||
| 5658 | try testArgs(@Vector(3, u16), @Vector(3, i32), .{ -1 << 31, -1, 0 }); | ||
| 5659 | try testArgs(@Vector(3, i32), @Vector(3, i32), .{ -1 << 31, -1, 0 }); | ||
| 5660 | try testArgs(@Vector(3, u32), @Vector(3, i32), .{ -1 << 31, -1, 0 }); | ||
| 5661 | try testArgs(@Vector(3, i64), @Vector(3, i32), .{ -1 << 31, -1, 0 }); | ||
| 5662 | try testArgs(@Vector(3, u64), @Vector(3, i32), .{ -1 << 31, -1, 0 }); | ||
| 5663 | try testArgs(@Vector(3, i128), @Vector(3, i32), .{ -1 << 31, -1, 0 }); | ||
| 5664 | try testArgs(@Vector(3, u128), @Vector(3, i32), .{ -1 << 31, -1, 0 }); | ||
| 5665 | try testArgs(@Vector(3, i256), @Vector(3, i32), .{ -1 << 31, -1, 0 }); | ||
| 5666 | try testArgs(@Vector(3, u256), @Vector(3, i32), .{ -1 << 31, -1, 0 }); | ||
| 5667 | try testArgs(@Vector(3, i512), @Vector(3, i32), .{ -1 << 31, -1, 0 }); | ||
| 5668 | try testArgs(@Vector(3, u512), @Vector(3, i32), .{ -1 << 31, -1, 0 }); | ||
| 5669 | try testArgs(@Vector(3, i1024), @Vector(3, i32), .{ -1 << 31, -1, 0 }); | ||
| 5670 | try testArgs(@Vector(3, u1024), @Vector(3, i32), .{ -1 << 31, -1, 0 }); | ||
| 5671 | try testArgs(@Vector(3, i8), @Vector(3, u32), .{ 0, 1, 1 << 31 }); | ||
| 5672 | try testArgs(@Vector(3, u8), @Vector(3, u32), .{ 0, 1, 1 << 31 }); | ||
| 5673 | try testArgs(@Vector(3, i16), @Vector(3, u32), .{ 0, 1, 1 << 31 }); | ||
| 5674 | try testArgs(@Vector(3, u16), @Vector(3, u32), .{ 0, 1, 1 << 31 }); | ||
| 5675 | try testArgs(@Vector(3, i32), @Vector(3, u32), .{ 0, 1, 1 << 31 }); | ||
| 5676 | try testArgs(@Vector(3, u32), @Vector(3, u32), .{ 0, 1, 1 << 31 }); | ||
| 5677 | try testArgs(@Vector(3, i64), @Vector(3, u32), .{ 0, 1, 1 << 31 }); | ||
| 5678 | try testArgs(@Vector(3, u64), @Vector(3, u32), .{ 0, 1, 1 << 31 }); | ||
| 5679 | try testArgs(@Vector(3, i128), @Vector(3, u32), .{ 0, 1, 1 << 31 }); | ||
| 5680 | try testArgs(@Vector(3, u128), @Vector(3, u32), .{ 0, 1, 1 << 31 }); | ||
| 5681 | try testArgs(@Vector(3, i256), @Vector(3, u32), .{ 0, 1, 1 << 31 }); | ||
| 5682 | try testArgs(@Vector(3, u256), @Vector(3, u32), .{ 0, 1, 1 << 31 }); | ||
| 5683 | try testArgs(@Vector(3, i512), @Vector(3, u32), .{ 0, 1, 1 << 31 }); | ||
| 5684 | try testArgs(@Vector(3, u512), @Vector(3, u32), .{ 0, 1, 1 << 31 }); | ||
| 5685 | try testArgs(@Vector(3, i1024), @Vector(3, u32), .{ 0, 1, 1 << 31 }); | ||
| 5686 | try testArgs(@Vector(3, u1024), @Vector(3, u32), .{ 0, 1, 1 << 31 }); | ||
| 5687 | |||
| 5688 | try testArgs(@Vector(3, i8), @Vector(3, i33), .{ -1 << 32, -1, 0 }); | ||
| 5689 | try testArgs(@Vector(3, u8), @Vector(3, i33), .{ -1 << 32, -1, 0 }); | ||
| 5690 | try testArgs(@Vector(3, i16), @Vector(3, i33), .{ -1 << 32, -1, 0 }); | ||
| 5691 | try testArgs(@Vector(3, u16), @Vector(3, i33), .{ -1 << 32, -1, 0 }); | ||
| 5692 | try testArgs(@Vector(3, i32), @Vector(3, i33), .{ -1 << 32, -1, 0 }); | ||
| 5693 | try testArgs(@Vector(3, u32), @Vector(3, i33), .{ -1 << 32, -1, 0 }); | ||
| 5694 | try testArgs(@Vector(3, i64), @Vector(3, i33), .{ -1 << 32, -1, 0 }); | ||
| 5695 | try testArgs(@Vector(3, u64), @Vector(3, i33), .{ -1 << 32, -1, 0 }); | ||
| 5696 | try testArgs(@Vector(3, i128), @Vector(3, i33), .{ -1 << 32, -1, 0 }); | ||
| 5697 | try testArgs(@Vector(3, u128), @Vector(3, i33), .{ -1 << 32, -1, 0 }); | ||
| 5698 | try testArgs(@Vector(3, i256), @Vector(3, i33), .{ -1 << 32, -1, 0 }); | ||
| 5699 | try testArgs(@Vector(3, u256), @Vector(3, i33), .{ -1 << 32, -1, 0 }); | ||
| 5700 | try testArgs(@Vector(3, i512), @Vector(3, i33), .{ -1 << 32, -1, 0 }); | ||
| 5701 | try testArgs(@Vector(3, u512), @Vector(3, i33), .{ -1 << 32, -1, 0 }); | ||
| 5702 | try testArgs(@Vector(3, i1024), @Vector(3, i33), .{ -1 << 32, -1, 0 }); | ||
| 5703 | try testArgs(@Vector(3, u1024), @Vector(3, i33), .{ -1 << 32, -1, 0 }); | ||
| 5704 | try testArgs(@Vector(3, i8), @Vector(3, u33), .{ 0, 1, 1 << 32 }); | ||
| 5705 | try testArgs(@Vector(3, u8), @Vector(3, u33), .{ 0, 1, 1 << 32 }); | ||
| 5706 | try testArgs(@Vector(3, i16), @Vector(3, u33), .{ 0, 1, 1 << 32 }); | ||
| 5707 | try testArgs(@Vector(3, u16), @Vector(3, u33), .{ 0, 1, 1 << 32 }); | ||
| 5708 | try testArgs(@Vector(3, i32), @Vector(3, u33), .{ 0, 1, 1 << 32 }); | ||
| 5709 | try testArgs(@Vector(3, u32), @Vector(3, u33), .{ 0, 1, 1 << 32 }); | ||
| 5710 | try testArgs(@Vector(3, i64), @Vector(3, u33), .{ 0, 1, 1 << 32 }); | ||
| 5711 | try testArgs(@Vector(3, u64), @Vector(3, u33), .{ 0, 1, 1 << 32 }); | ||
| 5712 | try testArgs(@Vector(3, i128), @Vector(3, u33), .{ 0, 1, 1 << 32 }); | ||
| 5713 | try testArgs(@Vector(3, u128), @Vector(3, u33), .{ 0, 1, 1 << 32 }); | ||
| 5714 | try testArgs(@Vector(3, i256), @Vector(3, u33), .{ 0, 1, 1 << 32 }); | ||
| 5715 | try testArgs(@Vector(3, u256), @Vector(3, u33), .{ 0, 1, 1 << 32 }); | ||
| 5716 | try testArgs(@Vector(3, i512), @Vector(3, u33), .{ 0, 1, 1 << 32 }); | ||
| 5717 | try testArgs(@Vector(3, u512), @Vector(3, u33), .{ 0, 1, 1 << 32 }); | ||
| 5718 | try testArgs(@Vector(3, i1024), @Vector(3, u33), .{ 0, 1, 1 << 32 }); | ||
| 5719 | try testArgs(@Vector(3, u1024), @Vector(3, u33), .{ 0, 1, 1 << 32 }); | ||
| 5720 | |||
| 5721 | try testArgs(@Vector(3, i8), @Vector(3, i63), .{ -1 << 62, -1, 0 }); | ||
| 5722 | try testArgs(@Vector(3, u8), @Vector(3, i63), .{ -1 << 62, -1, 0 }); | ||
| 5723 | try testArgs(@Vector(3, i16), @Vector(3, i63), .{ -1 << 62, -1, 0 }); | ||
| 5724 | try testArgs(@Vector(3, u16), @Vector(3, i63), .{ -1 << 62, -1, 0 }); | ||
| 5725 | try testArgs(@Vector(3, i32), @Vector(3, i63), .{ -1 << 62, -1, 0 }); | ||
| 5726 | try testArgs(@Vector(3, u32), @Vector(3, i63), .{ -1 << 62, -1, 0 }); | ||
| 5727 | try testArgs(@Vector(3, i64), @Vector(3, i63), .{ -1 << 62, -1, 0 }); | ||
| 5728 | try testArgs(@Vector(3, u64), @Vector(3, i63), .{ -1 << 62, -1, 0 }); | ||
| 5729 | try testArgs(@Vector(3, i128), @Vector(3, i63), .{ -1 << 62, -1, 0 }); | ||
| 5730 | try testArgs(@Vector(3, u128), @Vector(3, i63), .{ -1 << 62, -1, 0 }); | ||
| 5731 | try testArgs(@Vector(3, i256), @Vector(3, i63), .{ -1 << 62, -1, 0 }); | ||
| 5732 | try testArgs(@Vector(3, u256), @Vector(3, i63), .{ -1 << 62, -1, 0 }); | ||
| 5733 | try testArgs(@Vector(3, i512), @Vector(3, i63), .{ -1 << 62, -1, 0 }); | ||
| 5734 | try testArgs(@Vector(3, u512), @Vector(3, i63), .{ -1 << 62, -1, 0 }); | ||
| 5735 | try testArgs(@Vector(3, i1024), @Vector(3, i63), .{ -1 << 62, -1, 0 }); | ||
| 5736 | try testArgs(@Vector(3, u1024), @Vector(3, i63), .{ -1 << 62, -1, 0 }); | ||
| 5737 | try testArgs(@Vector(3, i8), @Vector(3, u63), .{ 0, 1, 1 << 62 }); | ||
| 5738 | try testArgs(@Vector(3, u8), @Vector(3, u63), .{ 0, 1, 1 << 62 }); | ||
| 5739 | try testArgs(@Vector(3, i16), @Vector(3, u63), .{ 0, 1, 1 << 62 }); | ||
| 5740 | try testArgs(@Vector(3, u16), @Vector(3, u63), .{ 0, 1, 1 << 62 }); | ||
| 5741 | try testArgs(@Vector(3, i32), @Vector(3, u63), .{ 0, 1, 1 << 62 }); | ||
| 5742 | try testArgs(@Vector(3, u32), @Vector(3, u63), .{ 0, 1, 1 << 62 }); | ||
| 5743 | try testArgs(@Vector(3, i64), @Vector(3, u63), .{ 0, 1, 1 << 62 }); | ||
| 5744 | try testArgs(@Vector(3, u64), @Vector(3, u63), .{ 0, 1, 1 << 62 }); | ||
| 5745 | try testArgs(@Vector(3, i128), @Vector(3, u63), .{ 0, 1, 1 << 62 }); | ||
| 5746 | try testArgs(@Vector(3, u128), @Vector(3, u63), .{ 0, 1, 1 << 62 }); | ||
| 5747 | try testArgs(@Vector(3, i256), @Vector(3, u63), .{ 0, 1, 1 << 62 }); | ||
| 5748 | try testArgs(@Vector(3, u256), @Vector(3, u63), .{ 0, 1, 1 << 62 }); | ||
| 5749 | try testArgs(@Vector(3, i512), @Vector(3, u63), .{ 0, 1, 1 << 62 }); | ||
| 5750 | try testArgs(@Vector(3, u512), @Vector(3, u63), .{ 0, 1, 1 << 62 }); | ||
| 5751 | try testArgs(@Vector(3, i1024), @Vector(3, u63), .{ 0, 1, 1 << 62 }); | ||
| 5752 | try testArgs(@Vector(3, u1024), @Vector(3, u63), .{ 0, 1, 1 << 62 }); | ||
| 5753 | |||
| 5754 | try testArgs(@Vector(3, i8), @Vector(3, i64), .{ -1 << 63, -1, 0 }); | ||
| 5755 | try testArgs(@Vector(3, u8), @Vector(3, i64), .{ -1 << 63, -1, 0 }); | ||
| 5756 | try testArgs(@Vector(3, i16), @Vector(3, i64), .{ -1 << 63, -1, 0 }); | ||
| 5757 | try testArgs(@Vector(3, u16), @Vector(3, i64), .{ -1 << 63, -1, 0 }); | ||
| 5758 | try testArgs(@Vector(3, i32), @Vector(3, i64), .{ -1 << 63, -1, 0 }); | ||
| 5759 | try testArgs(@Vector(3, u32), @Vector(3, i64), .{ -1 << 63, -1, 0 }); | ||
| 5760 | try testArgs(@Vector(3, i64), @Vector(3, i64), .{ -1 << 63, -1, 0 }); | ||
| 5761 | try testArgs(@Vector(3, u64), @Vector(3, i64), .{ -1 << 63, -1, 0 }); | ||
| 5762 | try testArgs(@Vector(3, i128), @Vector(3, i64), .{ -1 << 63, -1, 0 }); | ||
| 5763 | try testArgs(@Vector(3, u128), @Vector(3, i64), .{ -1 << 63, -1, 0 }); | ||
| 5764 | try testArgs(@Vector(3, i256), @Vector(3, i64), .{ -1 << 63, -1, 0 }); | ||
| 5765 | try testArgs(@Vector(3, u256), @Vector(3, i64), .{ -1 << 63, -1, 0 }); | ||
| 5766 | try testArgs(@Vector(3, i512), @Vector(3, i64), .{ -1 << 63, -1, 0 }); | ||
| 5767 | try testArgs(@Vector(3, u512), @Vector(3, i64), .{ -1 << 63, -1, 0 }); | ||
| 5768 | try testArgs(@Vector(3, i1024), @Vector(3, i64), .{ -1 << 63, -1, 0 }); | ||
| 5769 | try testArgs(@Vector(3, u1024), @Vector(3, i64), .{ -1 << 63, -1, 0 }); | ||
| 5770 | try testArgs(@Vector(3, i8), @Vector(3, u64), .{ 0, 1, 1 << 63 }); | ||
| 5771 | try testArgs(@Vector(3, u8), @Vector(3, u64), .{ 0, 1, 1 << 63 }); | ||
| 5772 | try testArgs(@Vector(3, i16), @Vector(3, u64), .{ 0, 1, 1 << 63 }); | ||
| 5773 | try testArgs(@Vector(3, u16), @Vector(3, u64), .{ 0, 1, 1 << 63 }); | ||
| 5774 | try testArgs(@Vector(3, i32), @Vector(3, u64), .{ 0, 1, 1 << 63 }); | ||
| 5775 | try testArgs(@Vector(3, u32), @Vector(3, u64), .{ 0, 1, 1 << 63 }); | ||
| 5776 | try testArgs(@Vector(3, i64), @Vector(3, u64), .{ 0, 1, 1 << 63 }); | ||
| 5777 | try testArgs(@Vector(3, u64), @Vector(3, u64), .{ 0, 1, 1 << 63 }); | ||
| 5778 | try testArgs(@Vector(3, i128), @Vector(3, u64), .{ 0, 1, 1 << 63 }); | ||
| 5779 | try testArgs(@Vector(3, u128), @Vector(3, u64), .{ 0, 1, 1 << 63 }); | ||
| 5780 | try testArgs(@Vector(3, i256), @Vector(3, u64), .{ 0, 1, 1 << 63 }); | ||
| 5781 | try testArgs(@Vector(3, u256), @Vector(3, u64), .{ 0, 1, 1 << 63 }); | ||
| 5782 | try testArgs(@Vector(3, i512), @Vector(3, u64), .{ 0, 1, 1 << 63 }); | ||
| 5783 | try testArgs(@Vector(3, u512), @Vector(3, u64), .{ 0, 1, 1 << 63 }); | ||
| 5784 | try testArgs(@Vector(3, i1024), @Vector(3, u64), .{ 0, 1, 1 << 63 }); | ||
| 5785 | try testArgs(@Vector(3, u1024), @Vector(3, u64), .{ 0, 1, 1 << 63 }); | ||
| 5786 | |||
| 5787 | try testArgs(@Vector(3, i8), @Vector(3, i65), .{ -1 << 64, -1, 0 }); | ||
| 5788 | try testArgs(@Vector(3, u8), @Vector(3, i65), .{ -1 << 64, -1, 0 }); | ||
| 5789 | try testArgs(@Vector(3, i16), @Vector(3, i65), .{ -1 << 64, -1, 0 }); | ||
| 5790 | try testArgs(@Vector(3, u16), @Vector(3, i65), .{ -1 << 64, -1, 0 }); | ||
| 5791 | try testArgs(@Vector(3, i32), @Vector(3, i65), .{ -1 << 64, -1, 0 }); | ||
| 5792 | try testArgs(@Vector(3, u32), @Vector(3, i65), .{ -1 << 64, -1, 0 }); | ||
| 5793 | try testArgs(@Vector(3, i64), @Vector(3, i65), .{ -1 << 64, -1, 0 }); | ||
| 5794 | try testArgs(@Vector(3, u64), @Vector(3, i65), .{ -1 << 64, -1, 0 }); | ||
| 5795 | try testArgs(@Vector(3, i128), @Vector(3, i65), .{ -1 << 64, -1, 0 }); | ||
| 5796 | try testArgs(@Vector(3, u128), @Vector(3, i65), .{ -1 << 64, -1, 0 }); | ||
| 5797 | try testArgs(@Vector(3, i256), @Vector(3, i65), .{ -1 << 64, -1, 0 }); | ||
| 5798 | try testArgs(@Vector(3, u256), @Vector(3, i65), .{ -1 << 64, -1, 0 }); | ||
| 5799 | try testArgs(@Vector(3, i512), @Vector(3, i65), .{ -1 << 64, -1, 0 }); | ||
| 5800 | try testArgs(@Vector(3, u512), @Vector(3, i65), .{ -1 << 64, -1, 0 }); | ||
| 5801 | try testArgs(@Vector(3, i1024), @Vector(3, i65), .{ -1 << 64, -1, 0 }); | ||
| 5802 | try testArgs(@Vector(3, u1024), @Vector(3, i65), .{ -1 << 64, -1, 0 }); | ||
| 5803 | try testArgs(@Vector(3, i8), @Vector(3, u65), .{ 0, 1, 1 << 64 }); | ||
| 5804 | try testArgs(@Vector(3, u8), @Vector(3, u65), .{ 0, 1, 1 << 64 }); | ||
| 5805 | try testArgs(@Vector(3, i16), @Vector(3, u65), .{ 0, 1, 1 << 64 }); | ||
| 5806 | try testArgs(@Vector(3, u16), @Vector(3, u65), .{ 0, 1, 1 << 64 }); | ||
| 5807 | try testArgs(@Vector(3, i32), @Vector(3, u65), .{ 0, 1, 1 << 64 }); | ||
| 5808 | try testArgs(@Vector(3, u32), @Vector(3, u65), .{ 0, 1, 1 << 64 }); | ||
| 5809 | try testArgs(@Vector(3, i64), @Vector(3, u65), .{ 0, 1, 1 << 64 }); | ||
| 5810 | try testArgs(@Vector(3, u64), @Vector(3, u65), .{ 0, 1, 1 << 64 }); | ||
| 5811 | try testArgs(@Vector(3, i128), @Vector(3, u65), .{ 0, 1, 1 << 64 }); | ||
| 5812 | try testArgs(@Vector(3, u128), @Vector(3, u65), .{ 0, 1, 1 << 64 }); | ||
| 5813 | try testArgs(@Vector(3, i256), @Vector(3, u65), .{ 0, 1, 1 << 64 }); | ||
| 5814 | try testArgs(@Vector(3, u256), @Vector(3, u65), .{ 0, 1, 1 << 64 }); | ||
| 5815 | try testArgs(@Vector(3, i512), @Vector(3, u65), .{ 0, 1, 1 << 64 }); | ||
| 5816 | try testArgs(@Vector(3, u512), @Vector(3, u65), .{ 0, 1, 1 << 64 }); | ||
| 5817 | try testArgs(@Vector(3, i1024), @Vector(3, u65), .{ 0, 1, 1 << 64 }); | ||
| 5818 | try testArgs(@Vector(3, u1024), @Vector(3, u65), .{ 0, 1, 1 << 64 }); | ||
| 5819 | |||
| 5820 | try testArgs(@Vector(3, i8), @Vector(3, i95), .{ -1 << 94, -1, 0 }); | ||
| 5821 | try testArgs(@Vector(3, u8), @Vector(3, i95), .{ -1 << 94, -1, 0 }); | ||
| 5822 | try testArgs(@Vector(3, i16), @Vector(3, i95), .{ -1 << 94, -1, 0 }); | ||
| 5823 | try testArgs(@Vector(3, u16), @Vector(3, i95), .{ -1 << 94, -1, 0 }); | ||
| 5824 | try testArgs(@Vector(3, i32), @Vector(3, i95), .{ -1 << 94, -1, 0 }); | ||
| 5825 | try testArgs(@Vector(3, u32), @Vector(3, i95), .{ -1 << 94, -1, 0 }); | ||
| 5826 | try testArgs(@Vector(3, i64), @Vector(3, i95), .{ -1 << 94, -1, 0 }); | ||
| 5827 | try testArgs(@Vector(3, u64), @Vector(3, i95), .{ -1 << 94, -1, 0 }); | ||
| 5828 | try testArgs(@Vector(3, i128), @Vector(3, i95), .{ -1 << 94, -1, 0 }); | ||
| 5829 | try testArgs(@Vector(3, u128), @Vector(3, i95), .{ -1 << 94, -1, 0 }); | ||
| 5830 | try testArgs(@Vector(3, i256), @Vector(3, i95), .{ -1 << 94, -1, 0 }); | ||
| 5831 | try testArgs(@Vector(3, u256), @Vector(3, i95), .{ -1 << 94, -1, 0 }); | ||
| 5832 | try testArgs(@Vector(3, i512), @Vector(3, i95), .{ -1 << 94, -1, 0 }); | ||
| 5833 | try testArgs(@Vector(3, u512), @Vector(3, i95), .{ -1 << 94, -1, 0 }); | ||
| 5834 | try testArgs(@Vector(3, i1024), @Vector(3, i95), .{ -1 << 94, -1, 0 }); | ||
| 5835 | try testArgs(@Vector(3, u1024), @Vector(3, i95), .{ -1 << 94, -1, 0 }); | ||
| 5836 | try testArgs(@Vector(3, i8), @Vector(3, u95), .{ 0, 1, 1 << 94 }); | ||
| 5837 | try testArgs(@Vector(3, u8), @Vector(3, u95), .{ 0, 1, 1 << 94 }); | ||
| 5838 | try testArgs(@Vector(3, i16), @Vector(3, u95), .{ 0, 1, 1 << 94 }); | ||
| 5839 | try testArgs(@Vector(3, u16), @Vector(3, u95), .{ 0, 1, 1 << 94 }); | ||
| 5840 | try testArgs(@Vector(3, i32), @Vector(3, u95), .{ 0, 1, 1 << 94 }); | ||
| 5841 | try testArgs(@Vector(3, u32), @Vector(3, u95), .{ 0, 1, 1 << 94 }); | ||
| 5842 | try testArgs(@Vector(3, i64), @Vector(3, u95), .{ 0, 1, 1 << 94 }); | ||
| 5843 | try testArgs(@Vector(3, u64), @Vector(3, u95), .{ 0, 1, 1 << 94 }); | ||
| 5844 | try testArgs(@Vector(3, i128), @Vector(3, u95), .{ 0, 1, 1 << 94 }); | ||
| 5845 | try testArgs(@Vector(3, u128), @Vector(3, u95), .{ 0, 1, 1 << 94 }); | ||
| 5846 | try testArgs(@Vector(3, i256), @Vector(3, u95), .{ 0, 1, 1 << 94 }); | ||
| 5847 | try testArgs(@Vector(3, u256), @Vector(3, u95), .{ 0, 1, 1 << 94 }); | ||
| 5848 | try testArgs(@Vector(3, i512), @Vector(3, u95), .{ 0, 1, 1 << 94 }); | ||
| 5849 | try testArgs(@Vector(3, u512), @Vector(3, u95), .{ 0, 1, 1 << 94 }); | ||
| 5850 | try testArgs(@Vector(3, i1024), @Vector(3, u95), .{ 0, 1, 1 << 94 }); | ||
| 5851 | try testArgs(@Vector(3, u1024), @Vector(3, u95), .{ 0, 1, 1 << 94 }); | ||
| 5852 | |||
| 5853 | try testArgs(@Vector(3, i8), @Vector(3, i96), .{ -1 << 95, -1, 0 }); | ||
| 5854 | try testArgs(@Vector(3, u8), @Vector(3, i96), .{ -1 << 95, -1, 0 }); | ||
| 5855 | try testArgs(@Vector(3, i16), @Vector(3, i96), .{ -1 << 95, -1, 0 }); | ||
| 5856 | try testArgs(@Vector(3, u16), @Vector(3, i96), .{ -1 << 95, -1, 0 }); | ||
| 5857 | try testArgs(@Vector(3, i32), @Vector(3, i96), .{ -1 << 95, -1, 0 }); | ||
| 5858 | try testArgs(@Vector(3, u32), @Vector(3, i96), .{ -1 << 95, -1, 0 }); | ||
| 5859 | try testArgs(@Vector(3, i64), @Vector(3, i96), .{ -1 << 95, -1, 0 }); | ||
| 5860 | try testArgs(@Vector(3, u64), @Vector(3, i96), .{ -1 << 95, -1, 0 }); | ||
| 5861 | try testArgs(@Vector(3, i128), @Vector(3, i96), .{ -1 << 95, -1, 0 }); | ||
| 5862 | try testArgs(@Vector(3, u128), @Vector(3, i96), .{ -1 << 95, -1, 0 }); | ||
| 5863 | try testArgs(@Vector(3, i256), @Vector(3, i96), .{ -1 << 95, -1, 0 }); | ||
| 5864 | try testArgs(@Vector(3, u256), @Vector(3, i96), .{ -1 << 95, -1, 0 }); | ||
| 5865 | try testArgs(@Vector(3, i512), @Vector(3, i96), .{ -1 << 95, -1, 0 }); | ||
| 5866 | try testArgs(@Vector(3, u512), @Vector(3, i96), .{ -1 << 95, -1, 0 }); | ||
| 5867 | try testArgs(@Vector(3, i1024), @Vector(3, i96), .{ -1 << 95, -1, 0 }); | ||
| 5868 | try testArgs(@Vector(3, u1024), @Vector(3, i96), .{ -1 << 95, -1, 0 }); | ||
| 5869 | try testArgs(@Vector(3, i8), @Vector(3, u96), .{ 0, 1, 1 << 95 }); | ||
| 5870 | try testArgs(@Vector(3, u8), @Vector(3, u96), .{ 0, 1, 1 << 95 }); | ||
| 5871 | try testArgs(@Vector(3, i16), @Vector(3, u96), .{ 0, 1, 1 << 95 }); | ||
| 5872 | try testArgs(@Vector(3, u16), @Vector(3, u96), .{ 0, 1, 1 << 95 }); | ||
| 5873 | try testArgs(@Vector(3, i32), @Vector(3, u96), .{ 0, 1, 1 << 95 }); | ||
| 5874 | try testArgs(@Vector(3, u32), @Vector(3, u96), .{ 0, 1, 1 << 95 }); | ||
| 5875 | try testArgs(@Vector(3, i64), @Vector(3, u96), .{ 0, 1, 1 << 95 }); | ||
| 5876 | try testArgs(@Vector(3, u64), @Vector(3, u96), .{ 0, 1, 1 << 95 }); | ||
| 5877 | try testArgs(@Vector(3, i128), @Vector(3, u96), .{ 0, 1, 1 << 95 }); | ||
| 5878 | try testArgs(@Vector(3, u128), @Vector(3, u96), .{ 0, 1, 1 << 95 }); | ||
| 5879 | try testArgs(@Vector(3, i256), @Vector(3, u96), .{ 0, 1, 1 << 95 }); | ||
| 5880 | try testArgs(@Vector(3, u256), @Vector(3, u96), .{ 0, 1, 1 << 95 }); | ||
| 5881 | try testArgs(@Vector(3, i512), @Vector(3, u96), .{ 0, 1, 1 << 95 }); | ||
| 5882 | try testArgs(@Vector(3, u512), @Vector(3, u96), .{ 0, 1, 1 << 95 }); | ||
| 5883 | try testArgs(@Vector(3, i1024), @Vector(3, u96), .{ 0, 1, 1 << 95 }); | ||
| 5884 | try testArgs(@Vector(3, u1024), @Vector(3, u96), .{ 0, 1, 1 << 95 }); | ||
| 5885 | |||
| 5886 | try testArgs(@Vector(3, i8), @Vector(3, i97), .{ -1 << 96, -1, 0 }); | ||
| 5887 | try testArgs(@Vector(3, u8), @Vector(3, i97), .{ -1 << 96, -1, 0 }); | ||
| 5888 | try testArgs(@Vector(3, i16), @Vector(3, i97), .{ -1 << 96, -1, 0 }); | ||
| 5889 | try testArgs(@Vector(3, u16), @Vector(3, i97), .{ -1 << 96, -1, 0 }); | ||
| 5890 | try testArgs(@Vector(3, i32), @Vector(3, i97), .{ -1 << 96, -1, 0 }); | ||
| 5891 | try testArgs(@Vector(3, u32), @Vector(3, i97), .{ -1 << 96, -1, 0 }); | ||
| 5892 | try testArgs(@Vector(3, i64), @Vector(3, i97), .{ -1 << 96, -1, 0 }); | ||
| 5893 | try testArgs(@Vector(3, u64), @Vector(3, i97), .{ -1 << 96, -1, 0 }); | ||
| 5894 | try testArgs(@Vector(3, i128), @Vector(3, i97), .{ -1 << 96, -1, 0 }); | ||
| 5895 | try testArgs(@Vector(3, u128), @Vector(3, i97), .{ -1 << 96, -1, 0 }); | ||
| 5896 | try testArgs(@Vector(3, i256), @Vector(3, i97), .{ -1 << 96, -1, 0 }); | ||
| 5897 | try testArgs(@Vector(3, u256), @Vector(3, i97), .{ -1 << 96, -1, 0 }); | ||
| 5898 | try testArgs(@Vector(3, i512), @Vector(3, i97), .{ -1 << 96, -1, 0 }); | ||
| 5899 | try testArgs(@Vector(3, u512), @Vector(3, i97), .{ -1 << 96, -1, 0 }); | ||
| 5900 | try testArgs(@Vector(3, i1024), @Vector(3, i97), .{ -1 << 96, -1, 0 }); | ||
| 5901 | try testArgs(@Vector(3, u1024), @Vector(3, i97), .{ -1 << 96, -1, 0 }); | ||
| 5902 | try testArgs(@Vector(3, i8), @Vector(3, u97), .{ 0, 1, 1 << 96 }); | ||
| 5903 | try testArgs(@Vector(3, u8), @Vector(3, u97), .{ 0, 1, 1 << 96 }); | ||
| 5904 | try testArgs(@Vector(3, i16), @Vector(3, u97), .{ 0, 1, 1 << 96 }); | ||
| 5905 | try testArgs(@Vector(3, u16), @Vector(3, u97), .{ 0, 1, 1 << 96 }); | ||
| 5906 | try testArgs(@Vector(3, i32), @Vector(3, u97), .{ 0, 1, 1 << 96 }); | ||
| 5907 | try testArgs(@Vector(3, u32), @Vector(3, u97), .{ 0, 1, 1 << 96 }); | ||
| 5908 | try testArgs(@Vector(3, i64), @Vector(3, u97), .{ 0, 1, 1 << 96 }); | ||
| 5909 | try testArgs(@Vector(3, u64), @Vector(3, u97), .{ 0, 1, 1 << 96 }); | ||
| 5910 | try testArgs(@Vector(3, i128), @Vector(3, u97), .{ 0, 1, 1 << 96 }); | ||
| 5911 | try testArgs(@Vector(3, u128), @Vector(3, u97), .{ 0, 1, 1 << 96 }); | ||
| 5912 | try testArgs(@Vector(3, i256), @Vector(3, u97), .{ 0, 1, 1 << 96 }); | ||
| 5913 | try testArgs(@Vector(3, u256), @Vector(3, u97), .{ 0, 1, 1 << 96 }); | ||
| 5914 | try testArgs(@Vector(3, i512), @Vector(3, u97), .{ 0, 1, 1 << 96 }); | ||
| 5915 | try testArgs(@Vector(3, u512), @Vector(3, u97), .{ 0, 1, 1 << 96 }); | ||
| 5916 | try testArgs(@Vector(3, i1024), @Vector(3, u97), .{ 0, 1, 1 << 96 }); | ||
| 5917 | try testArgs(@Vector(3, u1024), @Vector(3, u97), .{ 0, 1, 1 << 96 }); | ||
| 5918 | |||
| 5919 | try testArgs(@Vector(3, i8), @Vector(3, i127), .{ -1 << 126, -1, 0 }); | ||
| 5920 | try testArgs(@Vector(3, u8), @Vector(3, i127), .{ -1 << 126, -1, 0 }); | ||
| 5921 | try testArgs(@Vector(3, i16), @Vector(3, i127), .{ -1 << 126, -1, 0 }); | ||
| 5922 | try testArgs(@Vector(3, u16), @Vector(3, i127), .{ -1 << 126, -1, 0 }); | ||
| 5923 | try testArgs(@Vector(3, i32), @Vector(3, i127), .{ -1 << 126, -1, 0 }); | ||
| 5924 | try testArgs(@Vector(3, u32), @Vector(3, i127), .{ -1 << 126, -1, 0 }); | ||
| 5925 | try testArgs(@Vector(3, i64), @Vector(3, i127), .{ -1 << 126, -1, 0 }); | ||
| 5926 | try testArgs(@Vector(3, u64), @Vector(3, i127), .{ -1 << 126, -1, 0 }); | ||
| 5927 | try testArgs(@Vector(3, i128), @Vector(3, i127), .{ -1 << 126, -1, 0 }); | ||
| 5928 | try testArgs(@Vector(3, u128), @Vector(3, i127), .{ -1 << 126, -1, 0 }); | ||
| 5929 | try testArgs(@Vector(3, i256), @Vector(3, i127), .{ -1 << 126, -1, 0 }); | ||
| 5930 | try testArgs(@Vector(3, u256), @Vector(3, i127), .{ -1 << 126, -1, 0 }); | ||
| 5931 | try testArgs(@Vector(3, i512), @Vector(3, i127), .{ -1 << 126, -1, 0 }); | ||
| 5932 | try testArgs(@Vector(3, u512), @Vector(3, i127), .{ -1 << 126, -1, 0 }); | ||
| 5933 | try testArgs(@Vector(3, i1024), @Vector(3, i127), .{ -1 << 126, -1, 0 }); | ||
| 5934 | try testArgs(@Vector(3, u1024), @Vector(3, i127), .{ -1 << 126, -1, 0 }); | ||
| 5935 | try testArgs(@Vector(3, i8), @Vector(3, u127), .{ 0, 1, 1 << 126 }); | ||
| 5936 | try testArgs(@Vector(3, u8), @Vector(3, u127), .{ 0, 1, 1 << 126 }); | ||
| 5937 | try testArgs(@Vector(3, i16), @Vector(3, u127), .{ 0, 1, 1 << 126 }); | ||
| 5938 | try testArgs(@Vector(3, u16), @Vector(3, u127), .{ 0, 1, 1 << 126 }); | ||
| 5939 | try testArgs(@Vector(3, i32), @Vector(3, u127), .{ 0, 1, 1 << 126 }); | ||
| 5940 | try testArgs(@Vector(3, u32), @Vector(3, u127), .{ 0, 1, 1 << 126 }); | ||
| 5941 | try testArgs(@Vector(3, i64), @Vector(3, u127), .{ 0, 1, 1 << 126 }); | ||
| 5942 | try testArgs(@Vector(3, u64), @Vector(3, u127), .{ 0, 1, 1 << 126 }); | ||
| 5943 | try testArgs(@Vector(3, i128), @Vector(3, u127), .{ 0, 1, 1 << 126 }); | ||
| 5944 | try testArgs(@Vector(3, u128), @Vector(3, u127), .{ 0, 1, 1 << 126 }); | ||
| 5945 | try testArgs(@Vector(3, i256), @Vector(3, u127), .{ 0, 1, 1 << 126 }); | ||
| 5946 | try testArgs(@Vector(3, u256), @Vector(3, u127), .{ 0, 1, 1 << 126 }); | ||
| 5947 | try testArgs(@Vector(3, i512), @Vector(3, u127), .{ 0, 1, 1 << 126 }); | ||
| 5948 | try testArgs(@Vector(3, u512), @Vector(3, u127), .{ 0, 1, 1 << 126 }); | ||
| 5949 | try testArgs(@Vector(3, i1024), @Vector(3, u127), .{ 0, 1, 1 << 126 }); | ||
| 5950 | try testArgs(@Vector(3, u1024), @Vector(3, u127), .{ 0, 1, 1 << 126 }); | ||
| 5951 | |||
| 5952 | try testArgs(@Vector(3, i8), @Vector(3, i128), .{ -1 << 127, -1, 0 }); | ||
| 5953 | try testArgs(@Vector(3, u8), @Vector(3, i128), .{ -1 << 127, -1, 0 }); | ||
| 5954 | try testArgs(@Vector(3, i16), @Vector(3, i128), .{ -1 << 127, -1, 0 }); | ||
| 5955 | try testArgs(@Vector(3, u16), @Vector(3, i128), .{ -1 << 127, -1, 0 }); | ||
| 5956 | try testArgs(@Vector(3, i32), @Vector(3, i128), .{ -1 << 127, -1, 0 }); | ||
| 5957 | try testArgs(@Vector(3, u32), @Vector(3, i128), .{ -1 << 127, -1, 0 }); | ||
| 5958 | try testArgs(@Vector(3, i64), @Vector(3, i128), .{ -1 << 127, -1, 0 }); | ||
| 5959 | try testArgs(@Vector(3, u64), @Vector(3, i128), .{ -1 << 127, -1, 0 }); | ||
| 5960 | try testArgs(@Vector(3, i128), @Vector(3, i128), .{ -1 << 127, -1, 0 }); | ||
| 5961 | try testArgs(@Vector(3, u128), @Vector(3, i128), .{ -1 << 127, -1, 0 }); | ||
| 5962 | try testArgs(@Vector(3, i256), @Vector(3, i128), .{ -1 << 127, -1, 0 }); | ||
| 5963 | try testArgs(@Vector(3, u256), @Vector(3, i128), .{ -1 << 127, -1, 0 }); | ||
| 5964 | try testArgs(@Vector(3, i512), @Vector(3, i128), .{ -1 << 127, -1, 0 }); | ||
| 5965 | try testArgs(@Vector(3, u512), @Vector(3, i128), .{ -1 << 127, -1, 0 }); | ||
| 5966 | try testArgs(@Vector(3, i1024), @Vector(3, i128), .{ -1 << 127, -1, 0 }); | ||
| 5967 | try testArgs(@Vector(3, u1024), @Vector(3, i128), .{ -1 << 127, -1, 0 }); | ||
| 5968 | try testArgs(@Vector(3, i8), @Vector(3, u128), .{ 0, 1, 1 << 127 }); | ||
| 5969 | try testArgs(@Vector(3, u8), @Vector(3, u128), .{ 0, 1, 1 << 127 }); | ||
| 5970 | try testArgs(@Vector(3, i16), @Vector(3, u128), .{ 0, 1, 1 << 127 }); | ||
| 5971 | try testArgs(@Vector(3, u16), @Vector(3, u128), .{ 0, 1, 1 << 127 }); | ||
| 5972 | try testArgs(@Vector(3, i32), @Vector(3, u128), .{ 0, 1, 1 << 127 }); | ||
| 5973 | try testArgs(@Vector(3, u32), @Vector(3, u128), .{ 0, 1, 1 << 127 }); | ||
| 5974 | try testArgs(@Vector(3, i64), @Vector(3, u128), .{ 0, 1, 1 << 127 }); | ||
| 5975 | try testArgs(@Vector(3, u64), @Vector(3, u128), .{ 0, 1, 1 << 127 }); | ||
| 5976 | try testArgs(@Vector(3, i128), @Vector(3, u128), .{ 0, 1, 1 << 127 }); | ||
| 5977 | try testArgs(@Vector(3, u128), @Vector(3, u128), .{ 0, 1, 1 << 127 }); | ||
| 5978 | try testArgs(@Vector(3, i256), @Vector(3, u128), .{ 0, 1, 1 << 127 }); | ||
| 5979 | try testArgs(@Vector(3, u256), @Vector(3, u128), .{ 0, 1, 1 << 127 }); | ||
| 5980 | try testArgs(@Vector(3, i512), @Vector(3, u128), .{ 0, 1, 1 << 127 }); | ||
| 5981 | try testArgs(@Vector(3, u512), @Vector(3, u128), .{ 0, 1, 1 << 127 }); | ||
| 5982 | try testArgs(@Vector(3, i1024), @Vector(3, u128), .{ 0, 1, 1 << 127 }); | ||
| 5983 | try testArgs(@Vector(3, u1024), @Vector(3, u128), .{ 0, 1, 1 << 127 }); | ||
| 5984 | |||
| 5985 | try testArgs(@Vector(3, i8), @Vector(3, i129), .{ -1 << 128, -1, 0 }); | ||
| 5986 | try testArgs(@Vector(3, u8), @Vector(3, i129), .{ -1 << 128, -1, 0 }); | ||
| 5987 | try testArgs(@Vector(3, i16), @Vector(3, i129), .{ -1 << 128, -1, 0 }); | ||
| 5988 | try testArgs(@Vector(3, u16), @Vector(3, i129), .{ -1 << 128, -1, 0 }); | ||
| 5989 | try testArgs(@Vector(3, i32), @Vector(3, i129), .{ -1 << 128, -1, 0 }); | ||
| 5990 | try testArgs(@Vector(3, u32), @Vector(3, i129), .{ -1 << 128, -1, 0 }); | ||
| 5991 | try testArgs(@Vector(3, i64), @Vector(3, i129), .{ -1 << 128, -1, 0 }); | ||
| 5992 | try testArgs(@Vector(3, u64), @Vector(3, i129), .{ -1 << 128, -1, 0 }); | ||
| 5993 | try testArgs(@Vector(3, i128), @Vector(3, i129), .{ -1 << 128, -1, 0 }); | ||
| 5994 | try testArgs(@Vector(3, u128), @Vector(3, i129), .{ -1 << 128, -1, 0 }); | ||
| 5995 | try testArgs(@Vector(3, i256), @Vector(3, i129), .{ -1 << 128, -1, 0 }); | ||
| 5996 | try testArgs(@Vector(3, u256), @Vector(3, i129), .{ -1 << 128, -1, 0 }); | ||
| 5997 | try testArgs(@Vector(3, i512), @Vector(3, i129), .{ -1 << 128, -1, 0 }); | ||
| 5998 | try testArgs(@Vector(3, u512), @Vector(3, i129), .{ -1 << 128, -1, 0 }); | ||
| 5999 | try testArgs(@Vector(3, i1024), @Vector(3, i129), .{ -1 << 128, -1, 0 }); | ||
| 6000 | try testArgs(@Vector(3, u1024), @Vector(3, i129), .{ -1 << 128, -1, 0 }); | ||
| 6001 | try testArgs(@Vector(3, i8), @Vector(3, u129), .{ 0, 1, 1 << 128 }); | ||
| 6002 | try testArgs(@Vector(3, u8), @Vector(3, u129), .{ 0, 1, 1 << 128 }); | ||
| 6003 | try testArgs(@Vector(3, i16), @Vector(3, u129), .{ 0, 1, 1 << 128 }); | ||
| 6004 | try testArgs(@Vector(3, u16), @Vector(3, u129), .{ 0, 1, 1 << 128 }); | ||
| 6005 | try testArgs(@Vector(3, i32), @Vector(3, u129), .{ 0, 1, 1 << 128 }); | ||
| 6006 | try testArgs(@Vector(3, u32), @Vector(3, u129), .{ 0, 1, 1 << 128 }); | ||
| 6007 | try testArgs(@Vector(3, i64), @Vector(3, u129), .{ 0, 1, 1 << 128 }); | ||
| 6008 | try testArgs(@Vector(3, u64), @Vector(3, u129), .{ 0, 1, 1 << 128 }); | ||
| 6009 | try testArgs(@Vector(3, i128), @Vector(3, u129), .{ 0, 1, 1 << 128 }); | ||
| 6010 | try testArgs(@Vector(3, u128), @Vector(3, u129), .{ 0, 1, 1 << 128 }); | ||
| 6011 | try testArgs(@Vector(3, i256), @Vector(3, u129), .{ 0, 1, 1 << 128 }); | ||
| 6012 | try testArgs(@Vector(3, u256), @Vector(3, u129), .{ 0, 1, 1 << 128 }); | ||
| 6013 | try testArgs(@Vector(3, i512), @Vector(3, u129), .{ 0, 1, 1 << 128 }); | ||
| 6014 | try testArgs(@Vector(3, u512), @Vector(3, u129), .{ 0, 1, 1 << 128 }); | ||
| 6015 | try testArgs(@Vector(3, i1024), @Vector(3, u129), .{ 0, 1, 1 << 128 }); | ||
| 6016 | try testArgs(@Vector(3, u1024), @Vector(3, u129), .{ 0, 1, 1 << 128 }); | ||
| 6017 | |||
| 6018 | try testArgs(@Vector(3, i8), @Vector(3, i159), .{ -1 << 158, -1, 0 }); | ||
| 6019 | try testArgs(@Vector(3, u8), @Vector(3, i159), .{ -1 << 158, -1, 0 }); | ||
| 6020 | try testArgs(@Vector(3, i16), @Vector(3, i159), .{ -1 << 158, -1, 0 }); | ||
| 6021 | try testArgs(@Vector(3, u16), @Vector(3, i159), .{ -1 << 158, -1, 0 }); | ||
| 6022 | try testArgs(@Vector(3, i32), @Vector(3, i159), .{ -1 << 158, -1, 0 }); | ||
| 6023 | try testArgs(@Vector(3, u32), @Vector(3, i159), .{ -1 << 158, -1, 0 }); | ||
| 6024 | try testArgs(@Vector(3, i64), @Vector(3, i159), .{ -1 << 158, -1, 0 }); | ||
| 6025 | try testArgs(@Vector(3, u64), @Vector(3, i159), .{ -1 << 158, -1, 0 }); | ||
| 6026 | try testArgs(@Vector(3, i128), @Vector(3, i159), .{ -1 << 158, -1, 0 }); | ||
| 6027 | try testArgs(@Vector(3, u128), @Vector(3, i159), .{ -1 << 158, -1, 0 }); | ||
| 6028 | try testArgs(@Vector(3, i256), @Vector(3, i159), .{ -1 << 158, -1, 0 }); | ||
| 6029 | try testArgs(@Vector(3, u256), @Vector(3, i159), .{ -1 << 158, -1, 0 }); | ||
| 6030 | try testArgs(@Vector(3, i512), @Vector(3, i159), .{ -1 << 158, -1, 0 }); | ||
| 6031 | try testArgs(@Vector(3, u512), @Vector(3, i159), .{ -1 << 158, -1, 0 }); | ||
| 6032 | try testArgs(@Vector(3, i1024), @Vector(3, i159), .{ -1 << 158, -1, 0 }); | ||
| 6033 | try testArgs(@Vector(3, u1024), @Vector(3, i159), .{ -1 << 158, -1, 0 }); | ||
| 6034 | try testArgs(@Vector(3, i8), @Vector(3, u159), .{ 0, 1, 1 << 158 }); | ||
| 6035 | try testArgs(@Vector(3, u8), @Vector(3, u159), .{ 0, 1, 1 << 158 }); | ||
| 6036 | try testArgs(@Vector(3, i16), @Vector(3, u159), .{ 0, 1, 1 << 158 }); | ||
| 6037 | try testArgs(@Vector(3, u16), @Vector(3, u159), .{ 0, 1, 1 << 158 }); | ||
| 6038 | try testArgs(@Vector(3, i32), @Vector(3, u159), .{ 0, 1, 1 << 158 }); | ||
| 6039 | try testArgs(@Vector(3, u32), @Vector(3, u159), .{ 0, 1, 1 << 158 }); | ||
| 6040 | try testArgs(@Vector(3, i64), @Vector(3, u159), .{ 0, 1, 1 << 158 }); | ||
| 6041 | try testArgs(@Vector(3, u64), @Vector(3, u159), .{ 0, 1, 1 << 158 }); | ||
| 6042 | try testArgs(@Vector(3, i128), @Vector(3, u159), .{ 0, 1, 1 << 158 }); | ||
| 6043 | try testArgs(@Vector(3, u128), @Vector(3, u159), .{ 0, 1, 1 << 158 }); | ||
| 6044 | try testArgs(@Vector(3, i256), @Vector(3, u159), .{ 0, 1, 1 << 158 }); | ||
| 6045 | try testArgs(@Vector(3, u256), @Vector(3, u159), .{ 0, 1, 1 << 158 }); | ||
| 6046 | try testArgs(@Vector(3, i512), @Vector(3, u159), .{ 0, 1, 1 << 158 }); | ||
| 6047 | try testArgs(@Vector(3, u512), @Vector(3, u159), .{ 0, 1, 1 << 158 }); | ||
| 6048 | try testArgs(@Vector(3, i1024), @Vector(3, u159), .{ 0, 1, 1 << 158 }); | ||
| 6049 | try testArgs(@Vector(3, u1024), @Vector(3, u159), .{ 0, 1, 1 << 158 }); | ||
| 6050 | |||
| 6051 | try testArgs(@Vector(3, i8), @Vector(3, i160), .{ -1 << 159, -1, 0 }); | ||
| 6052 | try testArgs(@Vector(3, u8), @Vector(3, i160), .{ -1 << 159, -1, 0 }); | ||
| 6053 | try testArgs(@Vector(3, i16), @Vector(3, i160), .{ -1 << 159, -1, 0 }); | ||
| 6054 | try testArgs(@Vector(3, u16), @Vector(3, i160), .{ -1 << 159, -1, 0 }); | ||
| 6055 | try testArgs(@Vector(3, i32), @Vector(3, i160), .{ -1 << 159, -1, 0 }); | ||
| 6056 | try testArgs(@Vector(3, u32), @Vector(3, i160), .{ -1 << 159, -1, 0 }); | ||
| 6057 | try testArgs(@Vector(3, i64), @Vector(3, i160), .{ -1 << 159, -1, 0 }); | ||
| 6058 | try testArgs(@Vector(3, u64), @Vector(3, i160), .{ -1 << 159, -1, 0 }); | ||
| 6059 | try testArgs(@Vector(3, i128), @Vector(3, i160), .{ -1 << 159, -1, 0 }); | ||
| 6060 | try testArgs(@Vector(3, u128), @Vector(3, i160), .{ -1 << 159, -1, 0 }); | ||
| 6061 | try testArgs(@Vector(3, i256), @Vector(3, i160), .{ -1 << 159, -1, 0 }); | ||
| 6062 | try testArgs(@Vector(3, u256), @Vector(3, i160), .{ -1 << 159, -1, 0 }); | ||
| 6063 | try testArgs(@Vector(3, i512), @Vector(3, i160), .{ -1 << 159, -1, 0 }); | ||
| 6064 | try testArgs(@Vector(3, u512), @Vector(3, i160), .{ -1 << 159, -1, 0 }); | ||
| 6065 | try testArgs(@Vector(3, i1024), @Vector(3, i160), .{ -1 << 159, -1, 0 }); | ||
| 6066 | try testArgs(@Vector(3, u1024), @Vector(3, i160), .{ -1 << 159, -1, 0 }); | ||
| 6067 | try testArgs(@Vector(3, i8), @Vector(3, u160), .{ 0, 1, 1 << 159 }); | ||
| 6068 | try testArgs(@Vector(3, u8), @Vector(3, u160), .{ 0, 1, 1 << 159 }); | ||
| 6069 | try testArgs(@Vector(3, i16), @Vector(3, u160), .{ 0, 1, 1 << 159 }); | ||
| 6070 | try testArgs(@Vector(3, u16), @Vector(3, u160), .{ 0, 1, 1 << 159 }); | ||
| 6071 | try testArgs(@Vector(3, i32), @Vector(3, u160), .{ 0, 1, 1 << 159 }); | ||
| 6072 | try testArgs(@Vector(3, u32), @Vector(3, u160), .{ 0, 1, 1 << 159 }); | ||
| 6073 | try testArgs(@Vector(3, i64), @Vector(3, u160), .{ 0, 1, 1 << 159 }); | ||
| 6074 | try testArgs(@Vector(3, u64), @Vector(3, u160), .{ 0, 1, 1 << 159 }); | ||
| 6075 | try testArgs(@Vector(3, i128), @Vector(3, u160), .{ 0, 1, 1 << 159 }); | ||
| 6076 | try testArgs(@Vector(3, u128), @Vector(3, u160), .{ 0, 1, 1 << 159 }); | ||
| 6077 | try testArgs(@Vector(3, i256), @Vector(3, u160), .{ 0, 1, 1 << 159 }); | ||
| 6078 | try testArgs(@Vector(3, u256), @Vector(3, u160), .{ 0, 1, 1 << 159 }); | ||
| 6079 | try testArgs(@Vector(3, i512), @Vector(3, u160), .{ 0, 1, 1 << 159 }); | ||
| 6080 | try testArgs(@Vector(3, u512), @Vector(3, u160), .{ 0, 1, 1 << 159 }); | ||
| 6081 | try testArgs(@Vector(3, i1024), @Vector(3, u160), .{ 0, 1, 1 << 159 }); | ||
| 6082 | try testArgs(@Vector(3, u1024), @Vector(3, u160), .{ 0, 1, 1 << 159 }); | ||
| 6083 | |||
| 6084 | try testArgs(@Vector(3, i8), @Vector(3, i161), .{ -1 << 160, -1, 0 }); | ||
| 6085 | try testArgs(@Vector(3, u8), @Vector(3, i161), .{ -1 << 160, -1, 0 }); | ||
| 6086 | try testArgs(@Vector(3, i16), @Vector(3, i161), .{ -1 << 160, -1, 0 }); | ||
| 6087 | try testArgs(@Vector(3, u16), @Vector(3, i161), .{ -1 << 160, -1, 0 }); | ||
| 6088 | try testArgs(@Vector(3, i32), @Vector(3, i161), .{ -1 << 160, -1, 0 }); | ||
| 6089 | try testArgs(@Vector(3, u32), @Vector(3, i161), .{ -1 << 160, -1, 0 }); | ||
| 6090 | try testArgs(@Vector(3, i64), @Vector(3, i161), .{ -1 << 160, -1, 0 }); | ||
| 6091 | try testArgs(@Vector(3, u64), @Vector(3, i161), .{ -1 << 160, -1, 0 }); | ||
| 6092 | try testArgs(@Vector(3, i128), @Vector(3, i161), .{ -1 << 160, -1, 0 }); | ||
| 6093 | try testArgs(@Vector(3, u128), @Vector(3, i161), .{ -1 << 160, -1, 0 }); | ||
| 6094 | try testArgs(@Vector(3, i256), @Vector(3, i161), .{ -1 << 160, -1, 0 }); | ||
| 6095 | try testArgs(@Vector(3, u256), @Vector(3, i161), .{ -1 << 160, -1, 0 }); | ||
| 6096 | try testArgs(@Vector(3, i512), @Vector(3, i161), .{ -1 << 160, -1, 0 }); | ||
| 6097 | try testArgs(@Vector(3, u512), @Vector(3, i161), .{ -1 << 160, -1, 0 }); | ||
| 6098 | try testArgs(@Vector(3, i1024), @Vector(3, i161), .{ -1 << 160, -1, 0 }); | ||
| 6099 | try testArgs(@Vector(3, u1024), @Vector(3, i161), .{ -1 << 160, -1, 0 }); | ||
| 6100 | try testArgs(@Vector(3, i8), @Vector(3, u161), .{ 0, 1, 1 << 160 }); | ||
| 6101 | try testArgs(@Vector(3, u8), @Vector(3, u161), .{ 0, 1, 1 << 160 }); | ||
| 6102 | try testArgs(@Vector(3, i16), @Vector(3, u161), .{ 0, 1, 1 << 160 }); | ||
| 6103 | try testArgs(@Vector(3, u16), @Vector(3, u161), .{ 0, 1, 1 << 160 }); | ||
| 6104 | try testArgs(@Vector(3, i32), @Vector(3, u161), .{ 0, 1, 1 << 160 }); | ||
| 6105 | try testArgs(@Vector(3, u32), @Vector(3, u161), .{ 0, 1, 1 << 160 }); | ||
| 6106 | try testArgs(@Vector(3, i64), @Vector(3, u161), .{ 0, 1, 1 << 160 }); | ||
| 6107 | try testArgs(@Vector(3, u64), @Vector(3, u161), .{ 0, 1, 1 << 160 }); | ||
| 6108 | try testArgs(@Vector(3, i128), @Vector(3, u161), .{ 0, 1, 1 << 160 }); | ||
| 6109 | try testArgs(@Vector(3, u128), @Vector(3, u161), .{ 0, 1, 1 << 160 }); | ||
| 6110 | try testArgs(@Vector(3, i256), @Vector(3, u161), .{ 0, 1, 1 << 160 }); | ||
| 6111 | try testArgs(@Vector(3, u256), @Vector(3, u161), .{ 0, 1, 1 << 160 }); | ||
| 6112 | try testArgs(@Vector(3, i512), @Vector(3, u161), .{ 0, 1, 1 << 160 }); | ||
| 6113 | try testArgs(@Vector(3, u512), @Vector(3, u161), .{ 0, 1, 1 << 160 }); | ||
| 6114 | try testArgs(@Vector(3, i1024), @Vector(3, u161), .{ 0, 1, 1 << 160 }); | ||
| 6115 | try testArgs(@Vector(3, u1024), @Vector(3, u161), .{ 0, 1, 1 << 160 }); | ||
| 6116 | |||
| 6117 | try testArgs(@Vector(3, i8), @Vector(3, i191), .{ -1 << 190, -1, 0 }); | ||
| 6118 | try testArgs(@Vector(3, u8), @Vector(3, i191), .{ -1 << 190, -1, 0 }); | ||
| 6119 | try testArgs(@Vector(3, i16), @Vector(3, i191), .{ -1 << 190, -1, 0 }); | ||
| 6120 | try testArgs(@Vector(3, u16), @Vector(3, i191), .{ -1 << 190, -1, 0 }); | ||
| 6121 | try testArgs(@Vector(3, i32), @Vector(3, i191), .{ -1 << 190, -1, 0 }); | ||
| 6122 | try testArgs(@Vector(3, u32), @Vector(3, i191), .{ -1 << 190, -1, 0 }); | ||
| 6123 | try testArgs(@Vector(3, i64), @Vector(3, i191), .{ -1 << 190, -1, 0 }); | ||
| 6124 | try testArgs(@Vector(3, u64), @Vector(3, i191), .{ -1 << 190, -1, 0 }); | ||
| 6125 | try testArgs(@Vector(3, i128), @Vector(3, i191), .{ -1 << 190, -1, 0 }); | ||
| 6126 | try testArgs(@Vector(3, u128), @Vector(3, i191), .{ -1 << 190, -1, 0 }); | ||
| 6127 | try testArgs(@Vector(3, i256), @Vector(3, i191), .{ -1 << 190, -1, 0 }); | ||
| 6128 | try testArgs(@Vector(3, u256), @Vector(3, i191), .{ -1 << 190, -1, 0 }); | ||
| 6129 | try testArgs(@Vector(3, i512), @Vector(3, i191), .{ -1 << 190, -1, 0 }); | ||
| 6130 | try testArgs(@Vector(3, u512), @Vector(3, i191), .{ -1 << 190, -1, 0 }); | ||
| 6131 | try testArgs(@Vector(3, i1024), @Vector(3, i191), .{ -1 << 190, -1, 0 }); | ||
| 6132 | try testArgs(@Vector(3, u1024), @Vector(3, i191), .{ -1 << 190, -1, 0 }); | ||
| 6133 | try testArgs(@Vector(3, i8), @Vector(3, u191), .{ 0, 1, 1 << 190 }); | ||
| 6134 | try testArgs(@Vector(3, u8), @Vector(3, u191), .{ 0, 1, 1 << 190 }); | ||
| 6135 | try testArgs(@Vector(3, i16), @Vector(3, u191), .{ 0, 1, 1 << 190 }); | ||
| 6136 | try testArgs(@Vector(3, u16), @Vector(3, u191), .{ 0, 1, 1 << 190 }); | ||
| 6137 | try testArgs(@Vector(3, i32), @Vector(3, u191), .{ 0, 1, 1 << 190 }); | ||
| 6138 | try testArgs(@Vector(3, u32), @Vector(3, u191), .{ 0, 1, 1 << 190 }); | ||
| 6139 | try testArgs(@Vector(3, i64), @Vector(3, u191), .{ 0, 1, 1 << 190 }); | ||
| 6140 | try testArgs(@Vector(3, u64), @Vector(3, u191), .{ 0, 1, 1 << 190 }); | ||
| 6141 | try testArgs(@Vector(3, i128), @Vector(3, u191), .{ 0, 1, 1 << 190 }); | ||
| 6142 | try testArgs(@Vector(3, u128), @Vector(3, u191), .{ 0, 1, 1 << 190 }); | ||
| 6143 | try testArgs(@Vector(3, i256), @Vector(3, u191), .{ 0, 1, 1 << 190 }); | ||
| 6144 | try testArgs(@Vector(3, u256), @Vector(3, u191), .{ 0, 1, 1 << 190 }); | ||
| 6145 | try testArgs(@Vector(3, i512), @Vector(3, u191), .{ 0, 1, 1 << 190 }); | ||
| 6146 | try testArgs(@Vector(3, u512), @Vector(3, u191), .{ 0, 1, 1 << 190 }); | ||
| 6147 | try testArgs(@Vector(3, i1024), @Vector(3, u191), .{ 0, 1, 1 << 190 }); | ||
| 6148 | try testArgs(@Vector(3, u1024), @Vector(3, u191), .{ 0, 1, 1 << 190 }); | ||
| 6149 | |||
| 6150 | try testArgs(@Vector(3, i8), @Vector(3, i192), .{ -1 << 191, -1, 0 }); | ||
| 6151 | try testArgs(@Vector(3, u8), @Vector(3, i192), .{ -1 << 191, -1, 0 }); | ||
| 6152 | try testArgs(@Vector(3, i16), @Vector(3, i192), .{ -1 << 191, -1, 0 }); | ||
| 6153 | try testArgs(@Vector(3, u16), @Vector(3, i192), .{ -1 << 191, -1, 0 }); | ||
| 6154 | try testArgs(@Vector(3, i32), @Vector(3, i192), .{ -1 << 191, -1, 0 }); | ||
| 6155 | try testArgs(@Vector(3, u32), @Vector(3, i192), .{ -1 << 191, -1, 0 }); | ||
| 6156 | try testArgs(@Vector(3, i64), @Vector(3, i192), .{ -1 << 191, -1, 0 }); | ||
| 6157 | try testArgs(@Vector(3, u64), @Vector(3, i192), .{ -1 << 191, -1, 0 }); | ||
| 6158 | try testArgs(@Vector(3, i128), @Vector(3, i192), .{ -1 << 191, -1, 0 }); | ||
| 6159 | try testArgs(@Vector(3, u128), @Vector(3, i192), .{ -1 << 191, -1, 0 }); | ||
| 6160 | try testArgs(@Vector(3, i256), @Vector(3, i192), .{ -1 << 191, -1, 0 }); | ||
| 6161 | try testArgs(@Vector(3, u256), @Vector(3, i192), .{ -1 << 191, -1, 0 }); | ||
| 6162 | try testArgs(@Vector(3, i512), @Vector(3, i192), .{ -1 << 191, -1, 0 }); | ||
| 6163 | try testArgs(@Vector(3, u512), @Vector(3, i192), .{ -1 << 191, -1, 0 }); | ||
| 6164 | try testArgs(@Vector(3, i1024), @Vector(3, i192), .{ -1 << 191, -1, 0 }); | ||
| 6165 | try testArgs(@Vector(3, u1024), @Vector(3, i192), .{ -1 << 191, -1, 0 }); | ||
| 6166 | try testArgs(@Vector(3, i8), @Vector(3, u192), .{ 0, 1, 1 << 191 }); | ||
| 6167 | try testArgs(@Vector(3, u8), @Vector(3, u192), .{ 0, 1, 1 << 191 }); | ||
| 6168 | try testArgs(@Vector(3, i16), @Vector(3, u192), .{ 0, 1, 1 << 191 }); | ||
| 6169 | try testArgs(@Vector(3, u16), @Vector(3, u192), .{ 0, 1, 1 << 191 }); | ||
| 6170 | try testArgs(@Vector(3, i32), @Vector(3, u192), .{ 0, 1, 1 << 191 }); | ||
| 6171 | try testArgs(@Vector(3, u32), @Vector(3, u192), .{ 0, 1, 1 << 191 }); | ||
| 6172 | try testArgs(@Vector(3, i64), @Vector(3, u192), .{ 0, 1, 1 << 191 }); | ||
| 6173 | try testArgs(@Vector(3, u64), @Vector(3, u192), .{ 0, 1, 1 << 191 }); | ||
| 6174 | try testArgs(@Vector(3, i128), @Vector(3, u192), .{ 0, 1, 1 << 191 }); | ||
| 6175 | try testArgs(@Vector(3, u128), @Vector(3, u192), .{ 0, 1, 1 << 191 }); | ||
| 6176 | try testArgs(@Vector(3, i256), @Vector(3, u192), .{ 0, 1, 1 << 191 }); | ||
| 6177 | try testArgs(@Vector(3, u256), @Vector(3, u192), .{ 0, 1, 1 << 191 }); | ||
| 6178 | try testArgs(@Vector(3, i512), @Vector(3, u192), .{ 0, 1, 1 << 191 }); | ||
| 6179 | try testArgs(@Vector(3, u512), @Vector(3, u192), .{ 0, 1, 1 << 191 }); | ||
| 6180 | try testArgs(@Vector(3, i1024), @Vector(3, u192), .{ 0, 1, 1 << 191 }); | ||
| 6181 | try testArgs(@Vector(3, u1024), @Vector(3, u192), .{ 0, 1, 1 << 191 }); | ||
| 6182 | |||
| 6183 | try testArgs(@Vector(3, i8), @Vector(3, i193), .{ -1 << 192, -1, 0 }); | ||
| 6184 | try testArgs(@Vector(3, u8), @Vector(3, i193), .{ -1 << 192, -1, 0 }); | ||
| 6185 | try testArgs(@Vector(3, i16), @Vector(3, i193), .{ -1 << 192, -1, 0 }); | ||
| 6186 | try testArgs(@Vector(3, u16), @Vector(3, i193), .{ -1 << 192, -1, 0 }); | ||
| 6187 | try testArgs(@Vector(3, i32), @Vector(3, i193), .{ -1 << 192, -1, 0 }); | ||
| 6188 | try testArgs(@Vector(3, u32), @Vector(3, i193), .{ -1 << 192, -1, 0 }); | ||
| 6189 | try testArgs(@Vector(3, i64), @Vector(3, i193), .{ -1 << 192, -1, 0 }); | ||
| 6190 | try testArgs(@Vector(3, u64), @Vector(3, i193), .{ -1 << 192, -1, 0 }); | ||
| 6191 | try testArgs(@Vector(3, i128), @Vector(3, i193), .{ -1 << 192, -1, 0 }); | ||
| 6192 | try testArgs(@Vector(3, u128), @Vector(3, i193), .{ -1 << 192, -1, 0 }); | ||
| 6193 | try testArgs(@Vector(3, i256), @Vector(3, i193), .{ -1 << 192, -1, 0 }); | ||
| 6194 | try testArgs(@Vector(3, u256), @Vector(3, i193), .{ -1 << 192, -1, 0 }); | ||
| 6195 | try testArgs(@Vector(3, i512), @Vector(3, i193), .{ -1 << 192, -1, 0 }); | ||
| 6196 | try testArgs(@Vector(3, u512), @Vector(3, i193), .{ -1 << 192, -1, 0 }); | ||
| 6197 | try testArgs(@Vector(3, i1024), @Vector(3, i193), .{ -1 << 192, -1, 0 }); | ||
| 6198 | try testArgs(@Vector(3, u1024), @Vector(3, i193), .{ -1 << 192, -1, 0 }); | ||
| 6199 | try testArgs(@Vector(3, i8), @Vector(3, u193), .{ 0, 1, 1 << 192 }); | ||
| 6200 | try testArgs(@Vector(3, u8), @Vector(3, u193), .{ 0, 1, 1 << 192 }); | ||
| 6201 | try testArgs(@Vector(3, i16), @Vector(3, u193), .{ 0, 1, 1 << 192 }); | ||
| 6202 | try testArgs(@Vector(3, u16), @Vector(3, u193), .{ 0, 1, 1 << 192 }); | ||
| 6203 | try testArgs(@Vector(3, i32), @Vector(3, u193), .{ 0, 1, 1 << 192 }); | ||
| 6204 | try testArgs(@Vector(3, u32), @Vector(3, u193), .{ 0, 1, 1 << 192 }); | ||
| 6205 | try testArgs(@Vector(3, i64), @Vector(3, u193), .{ 0, 1, 1 << 192 }); | ||
| 6206 | try testArgs(@Vector(3, u64), @Vector(3, u193), .{ 0, 1, 1 << 192 }); | ||
| 6207 | try testArgs(@Vector(3, i128), @Vector(3, u193), .{ 0, 1, 1 << 192 }); | ||
| 6208 | try testArgs(@Vector(3, u128), @Vector(3, u193), .{ 0, 1, 1 << 192 }); | ||
| 6209 | try testArgs(@Vector(3, i256), @Vector(3, u193), .{ 0, 1, 1 << 192 }); | ||
| 6210 | try testArgs(@Vector(3, u256), @Vector(3, u193), .{ 0, 1, 1 << 192 }); | ||
| 6211 | try testArgs(@Vector(3, i512), @Vector(3, u193), .{ 0, 1, 1 << 192 }); | ||
| 6212 | try testArgs(@Vector(3, u512), @Vector(3, u193), .{ 0, 1, 1 << 192 }); | ||
| 6213 | try testArgs(@Vector(3, i1024), @Vector(3, u193), .{ 0, 1, 1 << 192 }); | ||
| 6214 | try testArgs(@Vector(3, u1024), @Vector(3, u193), .{ 0, 1, 1 << 192 }); | ||
| 6215 | |||
| 6216 | try testArgs(@Vector(3, i8), @Vector(3, i223), .{ -1 << 222, -1, 0 }); | ||
| 6217 | try testArgs(@Vector(3, u8), @Vector(3, i223), .{ -1 << 222, -1, 0 }); | ||
| 6218 | try testArgs(@Vector(3, i16), @Vector(3, i223), .{ -1 << 222, -1, 0 }); | ||
| 6219 | try testArgs(@Vector(3, u16), @Vector(3, i223), .{ -1 << 222, -1, 0 }); | ||
| 6220 | try testArgs(@Vector(3, i32), @Vector(3, i223), .{ -1 << 222, -1, 0 }); | ||
| 6221 | try testArgs(@Vector(3, u32), @Vector(3, i223), .{ -1 << 222, -1, 0 }); | ||
| 6222 | try testArgs(@Vector(3, i64), @Vector(3, i223), .{ -1 << 222, -1, 0 }); | ||
| 6223 | try testArgs(@Vector(3, u64), @Vector(3, i223), .{ -1 << 222, -1, 0 }); | ||
| 6224 | try testArgs(@Vector(3, i128), @Vector(3, i223), .{ -1 << 222, -1, 0 }); | ||
| 6225 | try testArgs(@Vector(3, u128), @Vector(3, i223), .{ -1 << 222, -1, 0 }); | ||
| 6226 | try testArgs(@Vector(3, i256), @Vector(3, i223), .{ -1 << 222, -1, 0 }); | ||
| 6227 | try testArgs(@Vector(3, u256), @Vector(3, i223), .{ -1 << 222, -1, 0 }); | ||
| 6228 | try testArgs(@Vector(3, i512), @Vector(3, i223), .{ -1 << 222, -1, 0 }); | ||
| 6229 | try testArgs(@Vector(3, u512), @Vector(3, i223), .{ -1 << 222, -1, 0 }); | ||
| 6230 | try testArgs(@Vector(3, i1024), @Vector(3, i223), .{ -1 << 222, -1, 0 }); | ||
| 6231 | try testArgs(@Vector(3, u1024), @Vector(3, i223), .{ -1 << 222, -1, 0 }); | ||
| 6232 | try testArgs(@Vector(3, i8), @Vector(3, u223), .{ 0, 1, 1 << 222 }); | ||
| 6233 | try testArgs(@Vector(3, u8), @Vector(3, u223), .{ 0, 1, 1 << 222 }); | ||
| 6234 | try testArgs(@Vector(3, i16), @Vector(3, u223), .{ 0, 1, 1 << 222 }); | ||
| 6235 | try testArgs(@Vector(3, u16), @Vector(3, u223), .{ 0, 1, 1 << 222 }); | ||
| 6236 | try testArgs(@Vector(3, i32), @Vector(3, u223), .{ 0, 1, 1 << 222 }); | ||
| 6237 | try testArgs(@Vector(3, u32), @Vector(3, u223), .{ 0, 1, 1 << 222 }); | ||
| 6238 | try testArgs(@Vector(3, i64), @Vector(3, u223), .{ 0, 1, 1 << 222 }); | ||
| 6239 | try testArgs(@Vector(3, u64), @Vector(3, u223), .{ 0, 1, 1 << 222 }); | ||
| 6240 | try testArgs(@Vector(3, i128), @Vector(3, u223), .{ 0, 1, 1 << 222 }); | ||
| 6241 | try testArgs(@Vector(3, u128), @Vector(3, u223), .{ 0, 1, 1 << 222 }); | ||
| 6242 | try testArgs(@Vector(3, i256), @Vector(3, u223), .{ 0, 1, 1 << 222 }); | ||
| 6243 | try testArgs(@Vector(3, u256), @Vector(3, u223), .{ 0, 1, 1 << 222 }); | ||
| 6244 | try testArgs(@Vector(3, i512), @Vector(3, u223), .{ 0, 1, 1 << 222 }); | ||
| 6245 | try testArgs(@Vector(3, u512), @Vector(3, u223), .{ 0, 1, 1 << 222 }); | ||
| 6246 | try testArgs(@Vector(3, i1024), @Vector(3, u223), .{ 0, 1, 1 << 222 }); | ||
| 6247 | try testArgs(@Vector(3, u1024), @Vector(3, u223), .{ 0, 1, 1 << 222 }); | ||
| 6248 | |||
| 6249 | try testArgs(@Vector(3, i8), @Vector(3, i224), .{ -1 << 223, -1, 0 }); | ||
| 6250 | try testArgs(@Vector(3, u8), @Vector(3, i224), .{ -1 << 223, -1, 0 }); | ||
| 6251 | try testArgs(@Vector(3, i16), @Vector(3, i224), .{ -1 << 223, -1, 0 }); | ||
| 6252 | try testArgs(@Vector(3, u16), @Vector(3, i224), .{ -1 << 223, -1, 0 }); | ||
| 6253 | try testArgs(@Vector(3, i32), @Vector(3, i224), .{ -1 << 223, -1, 0 }); | ||
| 6254 | try testArgs(@Vector(3, u32), @Vector(3, i224), .{ -1 << 223, -1, 0 }); | ||
| 6255 | try testArgs(@Vector(3, i64), @Vector(3, i224), .{ -1 << 223, -1, 0 }); | ||
| 6256 | try testArgs(@Vector(3, u64), @Vector(3, i224), .{ -1 << 223, -1, 0 }); | ||
| 6257 | try testArgs(@Vector(3, i128), @Vector(3, i224), .{ -1 << 223, -1, 0 }); | ||
| 6258 | try testArgs(@Vector(3, u128), @Vector(3, i224), .{ -1 << 223, -1, 0 }); | ||
| 6259 | try testArgs(@Vector(3, i256), @Vector(3, i224), .{ -1 << 223, -1, 0 }); | ||
| 6260 | try testArgs(@Vector(3, u256), @Vector(3, i224), .{ -1 << 223, -1, 0 }); | ||
| 6261 | try testArgs(@Vector(3, i512), @Vector(3, i224), .{ -1 << 223, -1, 0 }); | ||
| 6262 | try testArgs(@Vector(3, u512), @Vector(3, i224), .{ -1 << 223, -1, 0 }); | ||
| 6263 | try testArgs(@Vector(3, i1024), @Vector(3, i224), .{ -1 << 223, -1, 0 }); | ||
| 6264 | try testArgs(@Vector(3, u1024), @Vector(3, i224), .{ -1 << 223, -1, 0 }); | ||
| 6265 | try testArgs(@Vector(3, i8), @Vector(3, u224), .{ 0, 1, 1 << 223 }); | ||
| 6266 | try testArgs(@Vector(3, u8), @Vector(3, u224), .{ 0, 1, 1 << 223 }); | ||
| 6267 | try testArgs(@Vector(3, i16), @Vector(3, u224), .{ 0, 1, 1 << 223 }); | ||
| 6268 | try testArgs(@Vector(3, u16), @Vector(3, u224), .{ 0, 1, 1 << 223 }); | ||
| 6269 | try testArgs(@Vector(3, i32), @Vector(3, u224), .{ 0, 1, 1 << 223 }); | ||
| 6270 | try testArgs(@Vector(3, u32), @Vector(3, u224), .{ 0, 1, 1 << 223 }); | ||
| 6271 | try testArgs(@Vector(3, i64), @Vector(3, u224), .{ 0, 1, 1 << 223 }); | ||
| 6272 | try testArgs(@Vector(3, u64), @Vector(3, u224), .{ 0, 1, 1 << 223 }); | ||
| 6273 | try testArgs(@Vector(3, i128), @Vector(3, u224), .{ 0, 1, 1 << 223 }); | ||
| 6274 | try testArgs(@Vector(3, u128), @Vector(3, u224), .{ 0, 1, 1 << 223 }); | ||
| 6275 | try testArgs(@Vector(3, i256), @Vector(3, u224), .{ 0, 1, 1 << 223 }); | ||
| 6276 | try testArgs(@Vector(3, u256), @Vector(3, u224), .{ 0, 1, 1 << 223 }); | ||
| 6277 | try testArgs(@Vector(3, i512), @Vector(3, u224), .{ 0, 1, 1 << 223 }); | ||
| 6278 | try testArgs(@Vector(3, u512), @Vector(3, u224), .{ 0, 1, 1 << 223 }); | ||
| 6279 | try testArgs(@Vector(3, i1024), @Vector(3, u224), .{ 0, 1, 1 << 223 }); | ||
| 6280 | try testArgs(@Vector(3, u1024), @Vector(3, u224), .{ 0, 1, 1 << 223 }); | ||
| 6281 | |||
| 6282 | try testArgs(@Vector(3, i8), @Vector(3, i225), .{ -1 << 224, -1, 0 }); | ||
| 6283 | try testArgs(@Vector(3, u8), @Vector(3, i225), .{ -1 << 224, -1, 0 }); | ||
| 6284 | try testArgs(@Vector(3, i16), @Vector(3, i225), .{ -1 << 224, -1, 0 }); | ||
| 6285 | try testArgs(@Vector(3, u16), @Vector(3, i225), .{ -1 << 224, -1, 0 }); | ||
| 6286 | try testArgs(@Vector(3, i32), @Vector(3, i225), .{ -1 << 224, -1, 0 }); | ||
| 6287 | try testArgs(@Vector(3, u32), @Vector(3, i225), .{ -1 << 224, -1, 0 }); | ||
| 6288 | try testArgs(@Vector(3, i64), @Vector(3, i225), .{ -1 << 224, -1, 0 }); | ||
| 6289 | try testArgs(@Vector(3, u64), @Vector(3, i225), .{ -1 << 224, -1, 0 }); | ||
| 6290 | try testArgs(@Vector(3, i128), @Vector(3, i225), .{ -1 << 224, -1, 0 }); | ||
| 6291 | try testArgs(@Vector(3, u128), @Vector(3, i225), .{ -1 << 224, -1, 0 }); | ||
| 6292 | try testArgs(@Vector(3, i256), @Vector(3, i225), .{ -1 << 224, -1, 0 }); | ||
| 6293 | try testArgs(@Vector(3, u256), @Vector(3, i225), .{ -1 << 224, -1, 0 }); | ||
| 6294 | try testArgs(@Vector(3, i512), @Vector(3, i225), .{ -1 << 224, -1, 0 }); | ||
| 6295 | try testArgs(@Vector(3, u512), @Vector(3, i225), .{ -1 << 224, -1, 0 }); | ||
| 6296 | try testArgs(@Vector(3, i1024), @Vector(3, i225), .{ -1 << 224, -1, 0 }); | ||
| 6297 | try testArgs(@Vector(3, u1024), @Vector(3, i225), .{ -1 << 224, -1, 0 }); | ||
| 6298 | try testArgs(@Vector(3, i8), @Vector(3, u225), .{ 0, 1, 1 << 224 }); | ||
| 6299 | try testArgs(@Vector(3, u8), @Vector(3, u225), .{ 0, 1, 1 << 224 }); | ||
| 6300 | try testArgs(@Vector(3, i16), @Vector(3, u225), .{ 0, 1, 1 << 224 }); | ||
| 6301 | try testArgs(@Vector(3, u16), @Vector(3, u225), .{ 0, 1, 1 << 224 }); | ||
| 6302 | try testArgs(@Vector(3, i32), @Vector(3, u225), .{ 0, 1, 1 << 224 }); | ||
| 6303 | try testArgs(@Vector(3, u32), @Vector(3, u225), .{ 0, 1, 1 << 224 }); | ||
| 6304 | try testArgs(@Vector(3, i64), @Vector(3, u225), .{ 0, 1, 1 << 224 }); | ||
| 6305 | try testArgs(@Vector(3, u64), @Vector(3, u225), .{ 0, 1, 1 << 224 }); | ||
| 6306 | try testArgs(@Vector(3, i128), @Vector(3, u225), .{ 0, 1, 1 << 224 }); | ||
| 6307 | try testArgs(@Vector(3, u128), @Vector(3, u225), .{ 0, 1, 1 << 224 }); | ||
| 6308 | try testArgs(@Vector(3, i256), @Vector(3, u225), .{ 0, 1, 1 << 224 }); | ||
| 6309 | try testArgs(@Vector(3, u256), @Vector(3, u225), .{ 0, 1, 1 << 224 }); | ||
| 6310 | try testArgs(@Vector(3, i512), @Vector(3, u225), .{ 0, 1, 1 << 224 }); | ||
| 6311 | try testArgs(@Vector(3, u512), @Vector(3, u225), .{ 0, 1, 1 << 224 }); | ||
| 6312 | try testArgs(@Vector(3, i1024), @Vector(3, u225), .{ 0, 1, 1 << 224 }); | ||
| 6313 | try testArgs(@Vector(3, u1024), @Vector(3, u225), .{ 0, 1, 1 << 224 }); | ||
| 6314 | |||
| 6315 | try testArgs(@Vector(3, i8), @Vector(3, i255), .{ -1 << 254, -1, 0 }); | ||
| 6316 | try testArgs(@Vector(3, u8), @Vector(3, i255), .{ -1 << 254, -1, 0 }); | ||
| 6317 | try testArgs(@Vector(3, i16), @Vector(3, i255), .{ -1 << 254, -1, 0 }); | ||
| 6318 | try testArgs(@Vector(3, u16), @Vector(3, i255), .{ -1 << 254, -1, 0 }); | ||
| 6319 | try testArgs(@Vector(3, i32), @Vector(3, i255), .{ -1 << 254, -1, 0 }); | ||
| 6320 | try testArgs(@Vector(3, u32), @Vector(3, i255), .{ -1 << 254, -1, 0 }); | ||
| 6321 | try testArgs(@Vector(3, i64), @Vector(3, i255), .{ -1 << 254, -1, 0 }); | ||
| 6322 | try testArgs(@Vector(3, u64), @Vector(3, i255), .{ -1 << 254, -1, 0 }); | ||
| 6323 | try testArgs(@Vector(3, i128), @Vector(3, i255), .{ -1 << 254, -1, 0 }); | ||
| 6324 | try testArgs(@Vector(3, u128), @Vector(3, i255), .{ -1 << 254, -1, 0 }); | ||
| 6325 | try testArgs(@Vector(3, i256), @Vector(3, i255), .{ -1 << 254, -1, 0 }); | ||
| 6326 | try testArgs(@Vector(3, u256), @Vector(3, i255), .{ -1 << 254, -1, 0 }); | ||
| 6327 | try testArgs(@Vector(3, i512), @Vector(3, i255), .{ -1 << 254, -1, 0 }); | ||
| 6328 | try testArgs(@Vector(3, u512), @Vector(3, i255), .{ -1 << 254, -1, 0 }); | ||
| 6329 | try testArgs(@Vector(3, i1024), @Vector(3, i255), .{ -1 << 254, -1, 0 }); | ||
| 6330 | try testArgs(@Vector(3, u1024), @Vector(3, i255), .{ -1 << 254, -1, 0 }); | ||
| 6331 | try testArgs(@Vector(3, i8), @Vector(3, u255), .{ 0, 1, 1 << 254 }); | ||
| 6332 | try testArgs(@Vector(3, u8), @Vector(3, u255), .{ 0, 1, 1 << 254 }); | ||
| 6333 | try testArgs(@Vector(3, i16), @Vector(3, u255), .{ 0, 1, 1 << 254 }); | ||
| 6334 | try testArgs(@Vector(3, u16), @Vector(3, u255), .{ 0, 1, 1 << 254 }); | ||
| 6335 | try testArgs(@Vector(3, i32), @Vector(3, u255), .{ 0, 1, 1 << 254 }); | ||
| 6336 | try testArgs(@Vector(3, u32), @Vector(3, u255), .{ 0, 1, 1 << 254 }); | ||
| 6337 | try testArgs(@Vector(3, i64), @Vector(3, u255), .{ 0, 1, 1 << 254 }); | ||
| 6338 | try testArgs(@Vector(3, u64), @Vector(3, u255), .{ 0, 1, 1 << 254 }); | ||
| 6339 | try testArgs(@Vector(3, i128), @Vector(3, u255), .{ 0, 1, 1 << 254 }); | ||
| 6340 | try testArgs(@Vector(3, u128), @Vector(3, u255), .{ 0, 1, 1 << 254 }); | ||
| 6341 | try testArgs(@Vector(3, i256), @Vector(3, u255), .{ 0, 1, 1 << 254 }); | ||
| 6342 | try testArgs(@Vector(3, u256), @Vector(3, u255), .{ 0, 1, 1 << 254 }); | ||
| 6343 | try testArgs(@Vector(3, i512), @Vector(3, u255), .{ 0, 1, 1 << 254 }); | ||
| 6344 | try testArgs(@Vector(3, u512), @Vector(3, u255), .{ 0, 1, 1 << 254 }); | ||
| 6345 | try testArgs(@Vector(3, i1024), @Vector(3, u255), .{ 0, 1, 1 << 254 }); | ||
| 6346 | try testArgs(@Vector(3, u1024), @Vector(3, u255), .{ 0, 1, 1 << 254 }); | ||
| 6347 | |||
| 6348 | try testArgs(@Vector(3, i8), @Vector(3, i256), .{ -1 << 255, -1, 0 }); | ||
| 6349 | try testArgs(@Vector(3, u8), @Vector(3, i256), .{ -1 << 255, -1, 0 }); | ||
| 6350 | try testArgs(@Vector(3, i16), @Vector(3, i256), .{ -1 << 255, -1, 0 }); | ||
| 6351 | try testArgs(@Vector(3, u16), @Vector(3, i256), .{ -1 << 255, -1, 0 }); | ||
| 6352 | try testArgs(@Vector(3, i32), @Vector(3, i256), .{ -1 << 255, -1, 0 }); | ||
| 6353 | try testArgs(@Vector(3, u32), @Vector(3, i256), .{ -1 << 255, -1, 0 }); | ||
| 6354 | try testArgs(@Vector(3, i64), @Vector(3, i256), .{ -1 << 255, -1, 0 }); | ||
| 6355 | try testArgs(@Vector(3, u64), @Vector(3, i256), .{ -1 << 255, -1, 0 }); | ||
| 6356 | try testArgs(@Vector(3, i128), @Vector(3, i256), .{ -1 << 255, -1, 0 }); | ||
| 6357 | try testArgs(@Vector(3, u128), @Vector(3, i256), .{ -1 << 255, -1, 0 }); | ||
| 6358 | try testArgs(@Vector(3, i256), @Vector(3, i256), .{ -1 << 255, -1, 0 }); | ||
| 6359 | try testArgs(@Vector(3, u256), @Vector(3, i256), .{ -1 << 255, -1, 0 }); | ||
| 6360 | try testArgs(@Vector(3, i512), @Vector(3, i256), .{ -1 << 255, -1, 0 }); | ||
| 6361 | try testArgs(@Vector(3, u512), @Vector(3, i256), .{ -1 << 255, -1, 0 }); | ||
| 6362 | try testArgs(@Vector(3, i1024), @Vector(3, i256), .{ -1 << 255, -1, 0 }); | ||
| 6363 | try testArgs(@Vector(3, u1024), @Vector(3, i256), .{ -1 << 255, -1, 0 }); | ||
| 6364 | try testArgs(@Vector(3, i8), @Vector(3, u256), .{ 0, 1, 1 << 255 }); | ||
| 6365 | try testArgs(@Vector(3, u8), @Vector(3, u256), .{ 0, 1, 1 << 255 }); | ||
| 6366 | try testArgs(@Vector(3, i16), @Vector(3, u256), .{ 0, 1, 1 << 255 }); | ||
| 6367 | try testArgs(@Vector(3, u16), @Vector(3, u256), .{ 0, 1, 1 << 255 }); | ||
| 6368 | try testArgs(@Vector(3, i32), @Vector(3, u256), .{ 0, 1, 1 << 255 }); | ||
| 6369 | try testArgs(@Vector(3, u32), @Vector(3, u256), .{ 0, 1, 1 << 255 }); | ||
| 6370 | try testArgs(@Vector(3, i64), @Vector(3, u256), .{ 0, 1, 1 << 255 }); | ||
| 6371 | try testArgs(@Vector(3, u64), @Vector(3, u256), .{ 0, 1, 1 << 255 }); | ||
| 6372 | try testArgs(@Vector(3, i128), @Vector(3, u256), .{ 0, 1, 1 << 255 }); | ||
| 6373 | try testArgs(@Vector(3, u128), @Vector(3, u256), .{ 0, 1, 1 << 255 }); | ||
| 6374 | try testArgs(@Vector(3, i256), @Vector(3, u256), .{ 0, 1, 1 << 255 }); | ||
| 6375 | try testArgs(@Vector(3, u256), @Vector(3, u256), .{ 0, 1, 1 << 255 }); | ||
| 6376 | try testArgs(@Vector(3, i512), @Vector(3, u256), .{ 0, 1, 1 << 255 }); | ||
| 6377 | try testArgs(@Vector(3, u512), @Vector(3, u256), .{ 0, 1, 1 << 255 }); | ||
| 6378 | try testArgs(@Vector(3, i1024), @Vector(3, u256), .{ 0, 1, 1 << 255 }); | ||
| 6379 | try testArgs(@Vector(3, u1024), @Vector(3, u256), .{ 0, 1, 1 << 255 }); | ||
| 6380 | |||
| 6381 | try testArgs(@Vector(3, i8), @Vector(3, i257), .{ -1 << 256, -1, 0 }); | ||
| 6382 | try testArgs(@Vector(3, u8), @Vector(3, i257), .{ -1 << 256, -1, 0 }); | ||
| 6383 | try testArgs(@Vector(3, i16), @Vector(3, i257), .{ -1 << 256, -1, 0 }); | ||
| 6384 | try testArgs(@Vector(3, u16), @Vector(3, i257), .{ -1 << 256, -1, 0 }); | ||
| 6385 | try testArgs(@Vector(3, i32), @Vector(3, i257), .{ -1 << 256, -1, 0 }); | ||
| 6386 | try testArgs(@Vector(3, u32), @Vector(3, i257), .{ -1 << 256, -1, 0 }); | ||
| 6387 | try testArgs(@Vector(3, i64), @Vector(3, i257), .{ -1 << 256, -1, 0 }); | ||
| 6388 | try testArgs(@Vector(3, u64), @Vector(3, i257), .{ -1 << 256, -1, 0 }); | ||
| 6389 | try testArgs(@Vector(3, i128), @Vector(3, i257), .{ -1 << 256, -1, 0 }); | ||
| 6390 | try testArgs(@Vector(3, u128), @Vector(3, i257), .{ -1 << 256, -1, 0 }); | ||
| 6391 | try testArgs(@Vector(3, i256), @Vector(3, i257), .{ -1 << 256, -1, 0 }); | ||
| 6392 | try testArgs(@Vector(3, u256), @Vector(3, i257), .{ -1 << 256, -1, 0 }); | ||
| 6393 | try testArgs(@Vector(3, i512), @Vector(3, i257), .{ -1 << 256, -1, 0 }); | ||
| 6394 | try testArgs(@Vector(3, u512), @Vector(3, i257), .{ -1 << 256, -1, 0 }); | ||
| 6395 | try testArgs(@Vector(3, i1024), @Vector(3, i257), .{ -1 << 256, -1, 0 }); | ||
| 6396 | try testArgs(@Vector(3, u1024), @Vector(3, i257), .{ -1 << 256, -1, 0 }); | ||
| 6397 | try testArgs(@Vector(3, i8), @Vector(3, u257), .{ 0, 1, 1 << 256 }); | ||
| 6398 | try testArgs(@Vector(3, u8), @Vector(3, u257), .{ 0, 1, 1 << 256 }); | ||
| 6399 | try testArgs(@Vector(3, i16), @Vector(3, u257), .{ 0, 1, 1 << 256 }); | ||
| 6400 | try testArgs(@Vector(3, u16), @Vector(3, u257), .{ 0, 1, 1 << 256 }); | ||
| 6401 | try testArgs(@Vector(3, i32), @Vector(3, u257), .{ 0, 1, 1 << 256 }); | ||
| 6402 | try testArgs(@Vector(3, u32), @Vector(3, u257), .{ 0, 1, 1 << 256 }); | ||
| 6403 | try testArgs(@Vector(3, i64), @Vector(3, u257), .{ 0, 1, 1 << 256 }); | ||
| 6404 | try testArgs(@Vector(3, u64), @Vector(3, u257), .{ 0, 1, 1 << 256 }); | ||
| 6405 | try testArgs(@Vector(3, i128), @Vector(3, u257), .{ 0, 1, 1 << 256 }); | ||
| 6406 | try testArgs(@Vector(3, u128), @Vector(3, u257), .{ 0, 1, 1 << 256 }); | ||
| 6407 | try testArgs(@Vector(3, i256), @Vector(3, u257), .{ 0, 1, 1 << 256 }); | ||
| 6408 | try testArgs(@Vector(3, u256), @Vector(3, u257), .{ 0, 1, 1 << 256 }); | ||
| 6409 | try testArgs(@Vector(3, i512), @Vector(3, u257), .{ 0, 1, 1 << 256 }); | ||
| 6410 | try testArgs(@Vector(3, u512), @Vector(3, u257), .{ 0, 1, 1 << 256 }); | ||
| 6411 | try testArgs(@Vector(3, i1024), @Vector(3, u257), .{ 0, 1, 1 << 256 }); | ||
| 6412 | try testArgs(@Vector(3, u1024), @Vector(3, u257), .{ 0, 1, 1 << 256 }); | ||
| 6413 | |||
| 6414 | try testArgs(@Vector(3, i8), @Vector(3, i511), .{ -1 << 510, -1, 0 }); | ||
| 6415 | try testArgs(@Vector(3, u8), @Vector(3, i511), .{ -1 << 510, -1, 0 }); | ||
| 6416 | try testArgs(@Vector(3, i16), @Vector(3, i511), .{ -1 << 510, -1, 0 }); | ||
| 6417 | try testArgs(@Vector(3, u16), @Vector(3, i511), .{ -1 << 510, -1, 0 }); | ||
| 6418 | try testArgs(@Vector(3, i32), @Vector(3, i511), .{ -1 << 510, -1, 0 }); | ||
| 6419 | try testArgs(@Vector(3, u32), @Vector(3, i511), .{ -1 << 510, -1, 0 }); | ||
| 6420 | try testArgs(@Vector(3, i64), @Vector(3, i511), .{ -1 << 510, -1, 0 }); | ||
| 6421 | try testArgs(@Vector(3, u64), @Vector(3, i511), .{ -1 << 510, -1, 0 }); | ||
| 6422 | try testArgs(@Vector(3, i128), @Vector(3, i511), .{ -1 << 510, -1, 0 }); | ||
| 6423 | try testArgs(@Vector(3, u128), @Vector(3, i511), .{ -1 << 510, -1, 0 }); | ||
| 6424 | try testArgs(@Vector(3, i256), @Vector(3, i511), .{ -1 << 510, -1, 0 }); | ||
| 6425 | try testArgs(@Vector(3, u256), @Vector(3, i511), .{ -1 << 510, -1, 0 }); | ||
| 6426 | try testArgs(@Vector(3, i512), @Vector(3, i511), .{ -1 << 510, -1, 0 }); | ||
| 6427 | try testArgs(@Vector(3, u512), @Vector(3, i511), .{ -1 << 510, -1, 0 }); | ||
| 6428 | try testArgs(@Vector(3, i1024), @Vector(3, i511), .{ -1 << 510, -1, 0 }); | ||
| 6429 | try testArgs(@Vector(3, u1024), @Vector(3, i511), .{ -1 << 510, -1, 0 }); | ||
| 6430 | try testArgs(@Vector(3, i8), @Vector(3, u511), .{ 0, 1, 1 << 510 }); | ||
| 6431 | try testArgs(@Vector(3, u8), @Vector(3, u511), .{ 0, 1, 1 << 510 }); | ||
| 6432 | try testArgs(@Vector(3, i16), @Vector(3, u511), .{ 0, 1, 1 << 510 }); | ||
| 6433 | try testArgs(@Vector(3, u16), @Vector(3, u511), .{ 0, 1, 1 << 510 }); | ||
| 6434 | try testArgs(@Vector(3, i32), @Vector(3, u511), .{ 0, 1, 1 << 510 }); | ||
| 6435 | try testArgs(@Vector(3, u32), @Vector(3, u511), .{ 0, 1, 1 << 510 }); | ||
| 6436 | try testArgs(@Vector(3, i64), @Vector(3, u511), .{ 0, 1, 1 << 510 }); | ||
| 6437 | try testArgs(@Vector(3, u64), @Vector(3, u511), .{ 0, 1, 1 << 510 }); | ||
| 6438 | try testArgs(@Vector(3, i128), @Vector(3, u511), .{ 0, 1, 1 << 510 }); | ||
| 6439 | try testArgs(@Vector(3, u128), @Vector(3, u511), .{ 0, 1, 1 << 510 }); | ||
| 6440 | try testArgs(@Vector(3, i256), @Vector(3, u511), .{ 0, 1, 1 << 510 }); | ||
| 6441 | try testArgs(@Vector(3, u256), @Vector(3, u511), .{ 0, 1, 1 << 510 }); | ||
| 6442 | try testArgs(@Vector(3, i512), @Vector(3, u511), .{ 0, 1, 1 << 510 }); | ||
| 6443 | try testArgs(@Vector(3, u512), @Vector(3, u511), .{ 0, 1, 1 << 510 }); | ||
| 6444 | try testArgs(@Vector(3, i1024), @Vector(3, u511), .{ 0, 1, 1 << 510 }); | ||
| 6445 | try testArgs(@Vector(3, u1024), @Vector(3, u511), .{ 0, 1, 1 << 510 }); | ||
| 6446 | |||
| 6447 | try testArgs(@Vector(3, i8), @Vector(3, i512), .{ -1 << 511, -1, 0 }); | ||
| 6448 | try testArgs(@Vector(3, u8), @Vector(3, i512), .{ -1 << 511, -1, 0 }); | ||
| 6449 | try testArgs(@Vector(3, i16), @Vector(3, i512), .{ -1 << 511, -1, 0 }); | ||
| 6450 | try testArgs(@Vector(3, u16), @Vector(3, i512), .{ -1 << 511, -1, 0 }); | ||
| 6451 | try testArgs(@Vector(3, i32), @Vector(3, i512), .{ -1 << 511, -1, 0 }); | ||
| 6452 | try testArgs(@Vector(3, u32), @Vector(3, i512), .{ -1 << 511, -1, 0 }); | ||
| 6453 | try testArgs(@Vector(3, i64), @Vector(3, i512), .{ -1 << 511, -1, 0 }); | ||
| 6454 | try testArgs(@Vector(3, u64), @Vector(3, i512), .{ -1 << 511, -1, 0 }); | ||
| 6455 | try testArgs(@Vector(3, i128), @Vector(3, i512), .{ -1 << 511, -1, 0 }); | ||
| 6456 | try testArgs(@Vector(3, u128), @Vector(3, i512), .{ -1 << 511, -1, 0 }); | ||
| 6457 | try testArgs(@Vector(3, i256), @Vector(3, i512), .{ -1 << 511, -1, 0 }); | ||
| 6458 | try testArgs(@Vector(3, u256), @Vector(3, i512), .{ -1 << 511, -1, 0 }); | ||
| 6459 | try testArgs(@Vector(3, i512), @Vector(3, i512), .{ -1 << 511, -1, 0 }); | ||
| 6460 | try testArgs(@Vector(3, u512), @Vector(3, i512), .{ -1 << 511, -1, 0 }); | ||
| 6461 | try testArgs(@Vector(3, i1024), @Vector(3, i512), .{ -1 << 511, -1, 0 }); | ||
| 6462 | try testArgs(@Vector(3, u1024), @Vector(3, i512), .{ -1 << 511, -1, 0 }); | ||
| 6463 | try testArgs(@Vector(3, i8), @Vector(3, u512), .{ 0, 1, 1 << 511 }); | ||
| 6464 | try testArgs(@Vector(3, u8), @Vector(3, u512), .{ 0, 1, 1 << 511 }); | ||
| 6465 | try testArgs(@Vector(3, i16), @Vector(3, u512), .{ 0, 1, 1 << 511 }); | ||
| 6466 | try testArgs(@Vector(3, u16), @Vector(3, u512), .{ 0, 1, 1 << 511 }); | ||
| 6467 | try testArgs(@Vector(3, i32), @Vector(3, u512), .{ 0, 1, 1 << 511 }); | ||
| 6468 | try testArgs(@Vector(3, u32), @Vector(3, u512), .{ 0, 1, 1 << 511 }); | ||
| 6469 | try testArgs(@Vector(3, i64), @Vector(3, u512), .{ 0, 1, 1 << 511 }); | ||
| 6470 | try testArgs(@Vector(3, u64), @Vector(3, u512), .{ 0, 1, 1 << 511 }); | ||
| 6471 | try testArgs(@Vector(3, i128), @Vector(3, u512), .{ 0, 1, 1 << 511 }); | ||
| 6472 | try testArgs(@Vector(3, u128), @Vector(3, u512), .{ 0, 1, 1 << 511 }); | ||
| 6473 | try testArgs(@Vector(3, i256), @Vector(3, u512), .{ 0, 1, 1 << 511 }); | ||
| 6474 | try testArgs(@Vector(3, u256), @Vector(3, u512), .{ 0, 1, 1 << 511 }); | ||
| 6475 | try testArgs(@Vector(3, i512), @Vector(3, u512), .{ 0, 1, 1 << 511 }); | ||
| 6476 | try testArgs(@Vector(3, u512), @Vector(3, u512), .{ 0, 1, 1 << 511 }); | ||
| 6477 | try testArgs(@Vector(3, i1024), @Vector(3, u512), .{ 0, 1, 1 << 511 }); | ||
| 6478 | try testArgs(@Vector(3, u1024), @Vector(3, u512), .{ 0, 1, 1 << 511 }); | ||
| 6479 | |||
| 6480 | try testArgs(@Vector(3, i8), @Vector(3, i513), .{ -1 << 512, -1, 0 }); | ||
| 6481 | try testArgs(@Vector(3, u8), @Vector(3, i513), .{ -1 << 512, -1, 0 }); | ||
| 6482 | try testArgs(@Vector(3, i16), @Vector(3, i513), .{ -1 << 512, -1, 0 }); | ||
| 6483 | try testArgs(@Vector(3, u16), @Vector(3, i513), .{ -1 << 512, -1, 0 }); | ||
| 6484 | try testArgs(@Vector(3, i32), @Vector(3, i513), .{ -1 << 512, -1, 0 }); | ||
| 6485 | try testArgs(@Vector(3, u32), @Vector(3, i513), .{ -1 << 512, -1, 0 }); | ||
| 6486 | try testArgs(@Vector(3, i64), @Vector(3, i513), .{ -1 << 512, -1, 0 }); | ||
| 6487 | try testArgs(@Vector(3, u64), @Vector(3, i513), .{ -1 << 512, -1, 0 }); | ||
| 6488 | try testArgs(@Vector(3, i128), @Vector(3, i513), .{ -1 << 512, -1, 0 }); | ||
| 6489 | try testArgs(@Vector(3, u128), @Vector(3, i513), .{ -1 << 512, -1, 0 }); | ||
| 6490 | try testArgs(@Vector(3, i256), @Vector(3, i513), .{ -1 << 512, -1, 0 }); | ||
| 6491 | try testArgs(@Vector(3, u256), @Vector(3, i513), .{ -1 << 512, -1, 0 }); | ||
| 6492 | try testArgs(@Vector(3, i512), @Vector(3, i513), .{ -1 << 512, -1, 0 }); | ||
| 6493 | try testArgs(@Vector(3, u512), @Vector(3, i513), .{ -1 << 512, -1, 0 }); | ||
| 6494 | try testArgs(@Vector(3, i1024), @Vector(3, i513), .{ -1 << 512, -1, 0 }); | ||
| 6495 | try testArgs(@Vector(3, u1024), @Vector(3, i513), .{ -1 << 512, -1, 0 }); | ||
| 6496 | try testArgs(@Vector(3, i8), @Vector(3, u513), .{ 0, 1, 1 << 512 }); | ||
| 6497 | try testArgs(@Vector(3, u8), @Vector(3, u513), .{ 0, 1, 1 << 512 }); | ||
| 6498 | try testArgs(@Vector(3, i16), @Vector(3, u513), .{ 0, 1, 1 << 512 }); | ||
| 6499 | try testArgs(@Vector(3, u16), @Vector(3, u513), .{ 0, 1, 1 << 512 }); | ||
| 6500 | try testArgs(@Vector(3, i32), @Vector(3, u513), .{ 0, 1, 1 << 512 }); | ||
| 6501 | try testArgs(@Vector(3, u32), @Vector(3, u513), .{ 0, 1, 1 << 512 }); | ||
| 6502 | try testArgs(@Vector(3, i64), @Vector(3, u513), .{ 0, 1, 1 << 512 }); | ||
| 6503 | try testArgs(@Vector(3, u64), @Vector(3, u513), .{ 0, 1, 1 << 512 }); | ||
| 6504 | try testArgs(@Vector(3, i128), @Vector(3, u513), .{ 0, 1, 1 << 512 }); | ||
| 6505 | try testArgs(@Vector(3, u128), @Vector(3, u513), .{ 0, 1, 1 << 512 }); | ||
| 6506 | try testArgs(@Vector(3, i256), @Vector(3, u513), .{ 0, 1, 1 << 512 }); | ||
| 6507 | try testArgs(@Vector(3, u256), @Vector(3, u513), .{ 0, 1, 1 << 512 }); | ||
| 6508 | try testArgs(@Vector(3, i512), @Vector(3, u513), .{ 0, 1, 1 << 512 }); | ||
| 6509 | try testArgs(@Vector(3, u512), @Vector(3, u513), .{ 0, 1, 1 << 512 }); | ||
| 6510 | try testArgs(@Vector(3, i1024), @Vector(3, u513), .{ 0, 1, 1 << 512 }); | ||
| 6511 | try testArgs(@Vector(3, u1024), @Vector(3, u513), .{ 0, 1, 1 << 512 }); | ||
| 6512 | |||
| 6513 | try testArgs(@Vector(3, i8), @Vector(3, i1023), .{ -1 << 1022, -1, 0 }); | ||
| 6514 | try testArgs(@Vector(3, u8), @Vector(3, i1023), .{ -1 << 1022, -1, 0 }); | ||
| 6515 | try testArgs(@Vector(3, i16), @Vector(3, i1023), .{ -1 << 1022, -1, 0 }); | ||
| 6516 | try testArgs(@Vector(3, u16), @Vector(3, i1023), .{ -1 << 1022, -1, 0 }); | ||
| 6517 | try testArgs(@Vector(3, i32), @Vector(3, i1023), .{ -1 << 1022, -1, 0 }); | ||
| 6518 | try testArgs(@Vector(3, u32), @Vector(3, i1023), .{ -1 << 1022, -1, 0 }); | ||
| 6519 | try testArgs(@Vector(3, i64), @Vector(3, i1023), .{ -1 << 1022, -1, 0 }); | ||
| 6520 | try testArgs(@Vector(3, u64), @Vector(3, i1023), .{ -1 << 1022, -1, 0 }); | ||
| 6521 | try testArgs(@Vector(3, i128), @Vector(3, i1023), .{ -1 << 1022, -1, 0 }); | ||
| 6522 | try testArgs(@Vector(3, u128), @Vector(3, i1023), .{ -1 << 1022, -1, 0 }); | ||
| 6523 | try testArgs(@Vector(3, i256), @Vector(3, i1023), .{ -1 << 1022, -1, 0 }); | ||
| 6524 | try testArgs(@Vector(3, u256), @Vector(3, i1023), .{ -1 << 1022, -1, 0 }); | ||
| 6525 | try testArgs(@Vector(3, i512), @Vector(3, i1023), .{ -1 << 1022, -1, 0 }); | ||
| 6526 | try testArgs(@Vector(3, u512), @Vector(3, i1023), .{ -1 << 1022, -1, 0 }); | ||
| 6527 | try testArgs(@Vector(3, i1024), @Vector(3, i1023), .{ -1 << 1022, -1, 0 }); | ||
| 6528 | try testArgs(@Vector(3, u1024), @Vector(3, i1023), .{ -1 << 1022, -1, 0 }); | ||
| 6529 | try testArgs(@Vector(3, i8), @Vector(3, u1023), .{ 0, 1, 1 << 1022 }); | ||
| 6530 | try testArgs(@Vector(3, u8), @Vector(3, u1023), .{ 0, 1, 1 << 1022 }); | ||
| 6531 | try testArgs(@Vector(3, i16), @Vector(3, u1023), .{ 0, 1, 1 << 1022 }); | ||
| 6532 | try testArgs(@Vector(3, u16), @Vector(3, u1023), .{ 0, 1, 1 << 1022 }); | ||
| 6533 | try testArgs(@Vector(3, i32), @Vector(3, u1023), .{ 0, 1, 1 << 1022 }); | ||
| 6534 | try testArgs(@Vector(3, u32), @Vector(3, u1023), .{ 0, 1, 1 << 1022 }); | ||
| 6535 | try testArgs(@Vector(3, i64), @Vector(3, u1023), .{ 0, 1, 1 << 1022 }); | ||
| 6536 | try testArgs(@Vector(3, u64), @Vector(3, u1023), .{ 0, 1, 1 << 1022 }); | ||
| 6537 | try testArgs(@Vector(3, i128), @Vector(3, u1023), .{ 0, 1, 1 << 1022 }); | ||
| 6538 | try testArgs(@Vector(3, u128), @Vector(3, u1023), .{ 0, 1, 1 << 1022 }); | ||
| 6539 | try testArgs(@Vector(3, i256), @Vector(3, u1023), .{ 0, 1, 1 << 1022 }); | ||
| 6540 | try testArgs(@Vector(3, u256), @Vector(3, u1023), .{ 0, 1, 1 << 1022 }); | ||
| 6541 | try testArgs(@Vector(3, i512), @Vector(3, u1023), .{ 0, 1, 1 << 1022 }); | ||
| 6542 | try testArgs(@Vector(3, u512), @Vector(3, u1023), .{ 0, 1, 1 << 1022 }); | ||
| 6543 | try testArgs(@Vector(3, i1024), @Vector(3, u1023), .{ 0, 1, 1 << 1022 }); | ||
| 6544 | try testArgs(@Vector(3, u1024), @Vector(3, u1023), .{ 0, 1, 1 << 1022 }); | ||
| 6545 | |||
| 6546 | try testArgs(@Vector(3, i8), @Vector(3, i1024), .{ -1 << 1023, -1, 0 }); | ||
| 6547 | try testArgs(@Vector(3, u8), @Vector(3, i1024), .{ -1 << 1023, -1, 0 }); | ||
| 6548 | try testArgs(@Vector(3, i16), @Vector(3, i1024), .{ -1 << 1023, -1, 0 }); | ||
| 6549 | try testArgs(@Vector(3, u16), @Vector(3, i1024), .{ -1 << 1023, -1, 0 }); | ||
| 6550 | try testArgs(@Vector(3, i32), @Vector(3, i1024), .{ -1 << 1023, -1, 0 }); | ||
| 6551 | try testArgs(@Vector(3, u32), @Vector(3, i1024), .{ -1 << 1023, -1, 0 }); | ||
| 6552 | try testArgs(@Vector(3, i64), @Vector(3, i1024), .{ -1 << 1023, -1, 0 }); | ||
| 6553 | try testArgs(@Vector(3, u64), @Vector(3, i1024), .{ -1 << 1023, -1, 0 }); | ||
| 6554 | try testArgs(@Vector(3, i128), @Vector(3, i1024), .{ -1 << 1023, -1, 0 }); | ||
| 6555 | try testArgs(@Vector(3, u128), @Vector(3, i1024), .{ -1 << 1023, -1, 0 }); | ||
| 6556 | try testArgs(@Vector(3, i256), @Vector(3, i1024), .{ -1 << 1023, -1, 0 }); | ||
| 6557 | try testArgs(@Vector(3, u256), @Vector(3, i1024), .{ -1 << 1023, -1, 0 }); | ||
| 6558 | try testArgs(@Vector(3, i512), @Vector(3, i1024), .{ -1 << 1023, -1, 0 }); | ||
| 6559 | try testArgs(@Vector(3, u512), @Vector(3, i1024), .{ -1 << 1023, -1, 0 }); | ||
| 6560 | try testArgs(@Vector(3, i1024), @Vector(3, i1024), .{ -1 << 1023, -1, 0 }); | ||
| 6561 | try testArgs(@Vector(3, u1024), @Vector(3, i1024), .{ -1 << 1023, -1, 0 }); | ||
| 6562 | try testArgs(@Vector(3, i8), @Vector(3, u1024), .{ 0, 1, 1 << 1023 }); | ||
| 6563 | try testArgs(@Vector(3, u8), @Vector(3, u1024), .{ 0, 1, 1 << 1023 }); | ||
| 6564 | try testArgs(@Vector(3, i16), @Vector(3, u1024), .{ 0, 1, 1 << 1023 }); | ||
| 6565 | try testArgs(@Vector(3, u16), @Vector(3, u1024), .{ 0, 1, 1 << 1023 }); | ||
| 6566 | try testArgs(@Vector(3, i32), @Vector(3, u1024), .{ 0, 1, 1 << 1023 }); | ||
| 6567 | try testArgs(@Vector(3, u32), @Vector(3, u1024), .{ 0, 1, 1 << 1023 }); | ||
| 6568 | try testArgs(@Vector(3, i64), @Vector(3, u1024), .{ 0, 1, 1 << 1023 }); | ||
| 6569 | try testArgs(@Vector(3, u64), @Vector(3, u1024), .{ 0, 1, 1 << 1023 }); | ||
| 6570 | try testArgs(@Vector(3, i128), @Vector(3, u1024), .{ 0, 1, 1 << 1023 }); | ||
| 6571 | try testArgs(@Vector(3, u128), @Vector(3, u1024), .{ 0, 1, 1 << 1023 }); | ||
| 6572 | try testArgs(@Vector(3, i256), @Vector(3, u1024), .{ 0, 1, 1 << 1023 }); | ||
| 6573 | try testArgs(@Vector(3, u256), @Vector(3, u1024), .{ 0, 1, 1 << 1023 }); | ||
| 6574 | try testArgs(@Vector(3, i512), @Vector(3, u1024), .{ 0, 1, 1 << 1023 }); | ||
| 6575 | try testArgs(@Vector(3, u512), @Vector(3, u1024), .{ 0, 1, 1 << 1023 }); | ||
| 6576 | try testArgs(@Vector(3, i1024), @Vector(3, u1024), .{ 0, 1, 1 << 1023 }); | ||
| 6577 | try testArgs(@Vector(3, u1024), @Vector(3, u1024), .{ 0, 1, 1 << 1023 }); | ||
| 6578 | |||
| 6579 | try testArgs(@Vector(3, i8), @Vector(3, i1025), .{ -1 << 1024, -1, 0 }); | ||
| 6580 | try testArgs(@Vector(3, u8), @Vector(3, i1025), .{ -1 << 1024, -1, 0 }); | ||
| 6581 | try testArgs(@Vector(3, i16), @Vector(3, i1025), .{ -1 << 1024, -1, 0 }); | ||
| 6582 | try testArgs(@Vector(3, u16), @Vector(3, i1025), .{ -1 << 1024, -1, 0 }); | ||
| 6583 | try testArgs(@Vector(3, i32), @Vector(3, i1025), .{ -1 << 1024, -1, 0 }); | ||
| 6584 | try testArgs(@Vector(3, u32), @Vector(3, i1025), .{ -1 << 1024, -1, 0 }); | ||
| 6585 | try testArgs(@Vector(3, i64), @Vector(3, i1025), .{ -1 << 1024, -1, 0 }); | ||
| 6586 | try testArgs(@Vector(3, u64), @Vector(3, i1025), .{ -1 << 1024, -1, 0 }); | ||
| 6587 | try testArgs(@Vector(3, i128), @Vector(3, i1025), .{ -1 << 1024, -1, 0 }); | ||
| 6588 | try testArgs(@Vector(3, u128), @Vector(3, i1025), .{ -1 << 1024, -1, 0 }); | ||
| 6589 | try testArgs(@Vector(3, i256), @Vector(3, i1025), .{ -1 << 1024, -1, 0 }); | ||
| 6590 | try testArgs(@Vector(3, u256), @Vector(3, i1025), .{ -1 << 1024, -1, 0 }); | ||
| 6591 | try testArgs(@Vector(3, i512), @Vector(3, i1025), .{ -1 << 1024, -1, 0 }); | ||
| 6592 | try testArgs(@Vector(3, u512), @Vector(3, i1025), .{ -1 << 1024, -1, 0 }); | ||
| 6593 | try testArgs(@Vector(3, i1024), @Vector(3, i1025), .{ -1 << 1024, -1, 0 }); | ||
| 6594 | try testArgs(@Vector(3, u1024), @Vector(3, i1025), .{ -1 << 1024, -1, 0 }); | ||
| 6595 | try testArgs(@Vector(3, i8), @Vector(3, u1025), .{ 0, 1, 1 << 1024 }); | ||
| 6596 | try testArgs(@Vector(3, u8), @Vector(3, u1025), .{ 0, 1, 1 << 1024 }); | ||
| 6597 | try testArgs(@Vector(3, i16), @Vector(3, u1025), .{ 0, 1, 1 << 1024 }); | ||
| 6598 | try testArgs(@Vector(3, u16), @Vector(3, u1025), .{ 0, 1, 1 << 1024 }); | ||
| 6599 | try testArgs(@Vector(3, i32), @Vector(3, u1025), .{ 0, 1, 1 << 1024 }); | ||
| 6600 | try testArgs(@Vector(3, u32), @Vector(3, u1025), .{ 0, 1, 1 << 1024 }); | ||
| 6601 | try testArgs(@Vector(3, i64), @Vector(3, u1025), .{ 0, 1, 1 << 1024 }); | ||
| 6602 | try testArgs(@Vector(3, u64), @Vector(3, u1025), .{ 0, 1, 1 << 1024 }); | ||
| 6603 | try testArgs(@Vector(3, i128), @Vector(3, u1025), .{ 0, 1, 1 << 1024 }); | ||
| 6604 | try testArgs(@Vector(3, u128), @Vector(3, u1025), .{ 0, 1, 1 << 1024 }); | ||
| 6605 | try testArgs(@Vector(3, i256), @Vector(3, u1025), .{ 0, 1, 1 << 1024 }); | ||
| 6606 | try testArgs(@Vector(3, u256), @Vector(3, u1025), .{ 0, 1, 1 << 1024 }); | ||
| 6607 | try testArgs(@Vector(3, i512), @Vector(3, u1025), .{ 0, 1, 1 << 1024 }); | ||
| 6608 | try testArgs(@Vector(3, u512), @Vector(3, u1025), .{ 0, 1, 1 << 1024 }); | ||
| 6609 | try testArgs(@Vector(3, i1024), @Vector(3, u1025), .{ 0, 1, 1 << 1024 }); | ||
| 6610 | try testArgs(@Vector(3, u1024), @Vector(3, u1025), .{ 0, 1, 1 << 1024 }); | ||
| 6611 | } | ||
| 6612 | fn testFloatVectors() !void { | ||
| 6613 | @setEvalBranchQuota(6_700); | ||
| 6614 | |||
| 6615 | try testArgs(@Vector(1, f16), @Vector(1, f16), .{ | ||
| 6616 | 1e0, | ||
| 6617 | }); | ||
| 6618 | try testArgs(@Vector(2, f16), @Vector(2, f16), .{ | ||
| 6619 | -inf(f16), -1e-2, | ||
| 6620 | }); | ||
| 6621 | try testArgs(@Vector(4, f16), @Vector(4, f16), .{ | ||
| 6622 | -1e2, 1e-1, fmax(f16), 1e-2, | ||
| 6623 | }); | ||
| 6624 | try testArgs(@Vector(8, f16), @Vector(8, f16), .{ | ||
| 6625 | -1e-1, tmin(f16), -1e3, fmin(f16), nan(f16), -1e-3, 1e1, 1e4, | ||
| 6626 | }); | ||
| 6627 | try testArgs(@Vector(16, f16), @Vector(16, f16), .{ | ||
| 6628 | -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, | ||
| 6629 | }); | ||
| 6630 | try testArgs(@Vector(32, f16), @Vector(32, f16), .{ | ||
| 6631 | -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, | ||
| 6632 | 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), | ||
| 6633 | }); | ||
| 6634 | |||
| 6635 | try testArgs(@Vector(1, f32), @Vector(1, f16), .{ | ||
| 6636 | 1e0, | ||
| 6637 | }); | ||
| 6638 | try testArgs(@Vector(2, f32), @Vector(2, f16), .{ | ||
| 6639 | -inf(f16), -1e-2, | ||
| 6640 | }); | ||
| 6641 | try testArgs(@Vector(4, f32), @Vector(4, f16), .{ | ||
| 6642 | -1e2, 1e-1, fmax(f16), 1e-2, | ||
| 6643 | }); | ||
| 6644 | try testArgs(@Vector(8, f32), @Vector(8, f16), .{ | ||
| 6645 | -1e-1, tmin(f16), -1e3, fmin(f16), nan(f16), -1e-3, 1e1, 1e4, | ||
| 6646 | }); | ||
| 6647 | try testArgs(@Vector(16, f32), @Vector(16, f16), .{ | ||
| 6648 | -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, | ||
| 6649 | }); | ||
| 6650 | try testArgs(@Vector(32, f32), @Vector(32, f16), .{ | ||
| 6651 | -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, | ||
| 6652 | 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), | ||
| 6653 | }); | ||
| 6654 | |||
| 6655 | try testArgs(@Vector(1, f64), @Vector(1, f16), .{ | ||
| 6656 | 1e0, | ||
| 6657 | }); | ||
| 6658 | try testArgs(@Vector(2, f64), @Vector(2, f16), .{ | ||
| 6659 | -inf(f16), -1e-2, | ||
| 6660 | }); | ||
| 6661 | try testArgs(@Vector(4, f64), @Vector(4, f16), .{ | ||
| 6662 | -1e2, 1e-1, fmax(f16), 1e-2, | ||
| 6663 | }); | ||
| 6664 | try testArgs(@Vector(8, f64), @Vector(8, f16), .{ | ||
| 6665 | -1e-1, tmin(f16), -1e3, fmin(f16), nan(f16), -1e-3, 1e1, 1e4, | ||
| 6666 | }); | ||
| 6667 | try testArgs(@Vector(16, f64), @Vector(16, f16), .{ | ||
| 6668 | -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, | ||
| 6669 | }); | ||
| 6670 | try testArgs(@Vector(32, f64), @Vector(32, f16), .{ | ||
| 6671 | -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, | ||
| 6672 | 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), | ||
| 6673 | }); | ||
| 6674 | |||
| 6675 | try testArgs(@Vector(1, f80), @Vector(1, f16), .{ | ||
| 6676 | 1e0, | ||
| 6677 | }); | ||
| 6678 | try testArgs(@Vector(2, f80), @Vector(2, f16), .{ | ||
| 6679 | -inf(f16), -1e-2, | ||
| 6680 | }); | ||
| 6681 | try testArgs(@Vector(4, f80), @Vector(4, f16), .{ | ||
| 6682 | -1e2, 1e-1, fmax(f16), 1e-2, | ||
| 6683 | }); | ||
| 6684 | try testArgs(@Vector(8, f80), @Vector(8, f16), .{ | ||
| 6685 | -1e-1, tmin(f16), -1e3, fmin(f16), nan(f16), -1e-3, 1e1, 1e4, | ||
| 6686 | }); | ||
| 6687 | try testArgs(@Vector(16, f80), @Vector(16, f16), .{ | ||
| 6688 | -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, | ||
| 6689 | }); | ||
| 6690 | try testArgs(@Vector(32, f80), @Vector(32, f16), .{ | ||
| 6691 | -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, | ||
| 6692 | 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), | ||
| 6693 | }); | ||
| 6694 | |||
| 6695 | try testArgs(@Vector(1, f128), @Vector(1, f16), .{ | ||
| 6696 | 1e0, | ||
| 6697 | }); | ||
| 6698 | try testArgs(@Vector(2, f128), @Vector(2, f16), .{ | ||
| 6699 | -inf(f16), -1e-2, | ||
| 6700 | }); | ||
| 6701 | try testArgs(@Vector(4, f128), @Vector(4, f16), .{ | ||
| 6702 | -1e2, 1e-1, fmax(f16), 1e-2, | ||
| 6703 | }); | ||
| 6704 | try testArgs(@Vector(8, f128), @Vector(8, f16), .{ | ||
| 6705 | -1e-1, tmin(f16), -1e3, fmin(f16), nan(f16), -1e-3, 1e1, 1e4, | ||
| 6706 | }); | ||
| 6707 | try testArgs(@Vector(16, f128), @Vector(16, f16), .{ | ||
| 6708 | -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, | ||
| 6709 | }); | ||
| 6710 | try testArgs(@Vector(32, f128), @Vector(32, f16), .{ | ||
| 6711 | -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, | ||
| 6712 | 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), | ||
| 6713 | }); | ||
| 6714 | |||
| 6715 | try testArgs(@Vector(1, f16), @Vector(1, f32), .{ | ||
| 6716 | 1e0, | ||
| 6717 | }); | ||
| 6718 | try testArgs(@Vector(2, f16), @Vector(2, f32), .{ | ||
| 6719 | -inf(f32), -1e-2, | ||
| 6720 | }); | ||
| 6721 | try testArgs(@Vector(4, f16), @Vector(4, f32), .{ | ||
| 6722 | -1e2, 1e-1, fmax(f32), 1e-2, | ||
| 6723 | }); | ||
| 6724 | try testArgs(@Vector(8, f16), @Vector(8, f32), .{ | ||
| 6725 | -1e-1, tmin(f32), -1e3, fmin(f32), nan(f32), -1e-3, 1e1, 1e4, | ||
| 6726 | }); | ||
| 6727 | try testArgs(@Vector(16, f16), @Vector(16, f32), .{ | ||
| 6728 | -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, | ||
| 6729 | }); | ||
| 6730 | try testArgs(@Vector(32, f16), @Vector(32, f32), .{ | ||
| 6731 | -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, | ||
| 6732 | 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), | ||
| 6733 | }); | ||
| 6734 | |||
| 6735 | try testArgs(@Vector(1, f32), @Vector(1, f32), .{ | ||
| 6736 | 1e0, | ||
| 6737 | }); | ||
| 6738 | try testArgs(@Vector(2, f32), @Vector(2, f32), .{ | ||
| 6739 | -inf(f32), -1e-2, | ||
| 6740 | }); | ||
| 6741 | try testArgs(@Vector(4, f32), @Vector(4, f32), .{ | ||
| 6742 | -1e2, 1e-1, fmax(f32), 1e-2, | ||
| 6743 | }); | ||
| 6744 | try testArgs(@Vector(8, f32), @Vector(8, f32), .{ | ||
| 6745 | -1e-1, tmin(f32), -1e3, fmin(f32), nan(f32), -1e-3, 1e1, 1e4, | ||
| 6746 | }); | ||
| 6747 | try testArgs(@Vector(16, f32), @Vector(16, f32), .{ | ||
| 6748 | -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, | ||
| 6749 | }); | ||
| 6750 | try testArgs(@Vector(32, f32), @Vector(32, f32), .{ | ||
| 6751 | -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, | ||
| 6752 | 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), | ||
| 6753 | }); | ||
| 6754 | |||
| 6755 | try testArgs(@Vector(1, f64), @Vector(1, f32), .{ | ||
| 6756 | 1e0, | ||
| 6757 | }); | ||
| 6758 | try testArgs(@Vector(2, f64), @Vector(2, f32), .{ | ||
| 6759 | -inf(f32), -1e-2, | ||
| 6760 | }); | ||
| 6761 | try testArgs(@Vector(4, f64), @Vector(4, f32), .{ | ||
| 6762 | -1e2, 1e-1, fmax(f32), 1e-2, | ||
| 6763 | }); | ||
| 6764 | try testArgs(@Vector(8, f64), @Vector(8, f32), .{ | ||
| 6765 | -1e-1, tmin(f32), -1e3, fmin(f32), nan(f32), -1e-3, 1e1, 1e4, | ||
| 6766 | }); | ||
| 6767 | try testArgs(@Vector(16, f64), @Vector(16, f32), .{ | ||
| 6768 | -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, | ||
| 6769 | }); | ||
| 6770 | try testArgs(@Vector(32, f64), @Vector(32, f32), .{ | ||
| 6771 | -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, | ||
| 6772 | 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), | ||
| 6773 | }); | ||
| 6774 | |||
| 6775 | try testArgs(@Vector(1, f80), @Vector(1, f32), .{ | ||
| 6776 | 1e0, | ||
| 6777 | }); | ||
| 6778 | try testArgs(@Vector(2, f80), @Vector(2, f32), .{ | ||
| 6779 | -inf(f32), -1e-2, | ||
| 6780 | }); | ||
| 6781 | try testArgs(@Vector(4, f80), @Vector(4, f32), .{ | ||
| 6782 | -1e2, 1e-1, fmax(f32), 1e-2, | ||
| 6783 | }); | ||
| 6784 | try testArgs(@Vector(8, f80), @Vector(8, f32), .{ | ||
| 6785 | -1e-1, tmin(f32), -1e3, fmin(f32), nan(f32), -1e-3, 1e1, 1e4, | ||
| 6786 | }); | ||
| 6787 | try testArgs(@Vector(16, f80), @Vector(16, f32), .{ | ||
| 6788 | -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, | ||
| 6789 | }); | ||
| 6790 | try testArgs(@Vector(32, f80), @Vector(32, f32), .{ | ||
| 6791 | -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, | ||
| 6792 | 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), | ||
| 6793 | }); | ||
| 6794 | |||
| 6795 | try testArgs(@Vector(1, f128), @Vector(1, f32), .{ | ||
| 6796 | 1e0, | ||
| 6797 | }); | ||
| 6798 | try testArgs(@Vector(2, f128), @Vector(2, f32), .{ | ||
| 6799 | -inf(f32), -1e-2, | ||
| 6800 | }); | ||
| 6801 | try testArgs(@Vector(4, f128), @Vector(4, f32), .{ | ||
| 6802 | -1e2, 1e-1, fmax(f32), 1e-2, | ||
| 6803 | }); | ||
| 6804 | try testArgs(@Vector(8, f128), @Vector(8, f32), .{ | ||
| 6805 | -1e-1, tmin(f32), -1e3, fmin(f32), nan(f32), -1e-3, 1e1, 1e4, | ||
| 6806 | }); | ||
| 6807 | try testArgs(@Vector(16, f128), @Vector(16, f32), .{ | ||
| 6808 | -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, | ||
| 6809 | }); | ||
| 6810 | try testArgs(@Vector(32, f128), @Vector(32, f32), .{ | ||
| 6811 | -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, | ||
| 6812 | 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), | ||
| 6813 | }); | ||
| 6814 | |||
| 6815 | try testArgs(@Vector(1, f16), @Vector(1, f64), .{ | ||
| 6816 | 1e0, | ||
| 6817 | }); | ||
| 6818 | try testArgs(@Vector(2, f16), @Vector(2, f64), .{ | ||
| 6819 | -inf(f64), -1e-2, | ||
| 6820 | }); | ||
| 6821 | try testArgs(@Vector(4, f16), @Vector(4, f64), .{ | ||
| 6822 | -1e2, 1e-1, fmax(f64), 1e-2, | ||
| 6823 | }); | ||
| 6824 | try testArgs(@Vector(8, f16), @Vector(8, f64), .{ | ||
| 6825 | -1e-1, tmin(f64), -1e3, fmin(f64), nan(f64), -1e-3, 1e1, 1e4, | ||
| 6826 | }); | ||
| 6827 | try testArgs(@Vector(16, f16), @Vector(16, f64), .{ | ||
| 6828 | -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, | ||
| 6829 | }); | ||
| 6830 | try testArgs(@Vector(32, f16), @Vector(32, f64), .{ | ||
| 6831 | -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, | ||
| 6832 | 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), | ||
| 6833 | }); | ||
| 6834 | |||
| 6835 | try testArgs(@Vector(1, f32), @Vector(1, f64), .{ | ||
| 6836 | 1e0, | ||
| 6837 | }); | ||
| 6838 | try testArgs(@Vector(2, f32), @Vector(2, f64), .{ | ||
| 6839 | -inf(f64), -1e-2, | ||
| 6840 | }); | ||
| 6841 | try testArgs(@Vector(4, f32), @Vector(4, f64), .{ | ||
| 6842 | -1e2, 1e-1, fmax(f64), 1e-2, | ||
| 6843 | }); | ||
| 6844 | try testArgs(@Vector(8, f32), @Vector(8, f64), .{ | ||
| 6845 | -1e-1, tmin(f64), -1e3, fmin(f64), nan(f64), -1e-3, 1e1, 1e4, | ||
| 6846 | }); | ||
| 6847 | try testArgs(@Vector(16, f32), @Vector(16, f64), .{ | ||
| 6848 | -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, | ||
| 6849 | }); | ||
| 6850 | try testArgs(@Vector(32, f32), @Vector(32, f64), .{ | ||
| 6851 | -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, | ||
| 6852 | 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), | ||
| 6853 | }); | ||
| 6854 | |||
| 6855 | try testArgs(@Vector(1, f64), @Vector(1, f64), .{ | ||
| 6856 | 1e0, | ||
| 6857 | }); | ||
| 6858 | try testArgs(@Vector(2, f64), @Vector(2, f64), .{ | ||
| 6859 | -inf(f64), -1e-2, | ||
| 6860 | }); | ||
| 6861 | try testArgs(@Vector(4, f64), @Vector(4, f64), .{ | ||
| 6862 | -1e2, 1e-1, fmax(f64), 1e-2, | ||
| 6863 | }); | ||
| 6864 | try testArgs(@Vector(8, f64), @Vector(8, f64), .{ | ||
| 6865 | -1e-1, tmin(f64), -1e3, fmin(f64), nan(f64), -1e-3, 1e1, 1e4, | ||
| 6866 | }); | ||
| 6867 | try testArgs(@Vector(16, f64), @Vector(16, f64), .{ | ||
| 6868 | -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, | ||
| 6869 | }); | ||
| 6870 | try testArgs(@Vector(32, f64), @Vector(32, f64), .{ | ||
| 6871 | -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, | ||
| 6872 | 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), | ||
| 6873 | }); | ||
| 6874 | |||
| 6875 | try testArgs(@Vector(1, f80), @Vector(1, f64), .{ | ||
| 6876 | 1e0, | ||
| 6877 | }); | ||
| 6878 | try testArgs(@Vector(2, f80), @Vector(2, f64), .{ | ||
| 6879 | -inf(f64), -1e-2, | ||
| 6880 | }); | ||
| 6881 | try testArgs(@Vector(4, f80), @Vector(4, f64), .{ | ||
| 6882 | -1e2, 1e-1, fmax(f64), 1e-2, | ||
| 6883 | }); | ||
| 6884 | try testArgs(@Vector(8, f80), @Vector(8, f64), .{ | ||
| 6885 | -1e-1, tmin(f64), -1e3, fmin(f64), nan(f64), -1e-3, 1e1, 1e4, | ||
| 6886 | }); | ||
| 6887 | try testArgs(@Vector(16, f80), @Vector(16, f64), .{ | ||
| 6888 | -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, | ||
| 6889 | }); | ||
| 6890 | try testArgs(@Vector(32, f80), @Vector(32, f64), .{ | ||
| 6891 | -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, | ||
| 6892 | 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), | ||
| 6893 | }); | ||
| 6894 | |||
| 6895 | try testArgs(@Vector(1, f128), @Vector(1, f64), .{ | ||
| 6896 | 1e0, | ||
| 6897 | }); | ||
| 6898 | try testArgs(@Vector(2, f128), @Vector(2, f64), .{ | ||
| 6899 | -inf(f64), -1e-2, | ||
| 6900 | }); | ||
| 6901 | try testArgs(@Vector(4, f128), @Vector(4, f64), .{ | ||
| 6902 | -1e2, 1e-1, fmax(f64), 1e-2, | ||
| 6903 | }); | ||
| 6904 | try testArgs(@Vector(8, f128), @Vector(8, f64), .{ | ||
| 6905 | -1e-1, tmin(f64), -1e3, fmin(f64), nan(f64), -1e-3, 1e1, 1e4, | ||
| 6906 | }); | ||
| 6907 | try testArgs(@Vector(16, f128), @Vector(16, f64), .{ | ||
| 6908 | -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, | ||
| 6909 | }); | ||
| 6910 | try testArgs(@Vector(32, f128), @Vector(32, f64), .{ | ||
| 6911 | -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, | ||
| 6912 | 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), | ||
| 6913 | }); | ||
| 6914 | |||
| 6915 | try testArgs(@Vector(1, f16), @Vector(1, f80), .{ | ||
| 6916 | 1e0, | ||
| 6917 | }); | ||
| 6918 | try testArgs(@Vector(2, f16), @Vector(2, f80), .{ | ||
| 6919 | -inf(f80), -1e-2, | ||
| 6920 | }); | ||
| 6921 | try testArgs(@Vector(4, f16), @Vector(4, f80), .{ | ||
| 6922 | -1e2, 1e-1, fmax(f80), 1e-2, | ||
| 6923 | }); | ||
| 6924 | try testArgs(@Vector(8, f16), @Vector(8, f80), .{ | ||
| 6925 | -1e-1, tmin(f80), -1e3, fmin(f80), nan(f80), -1e-3, 1e1, 1e4, | ||
| 6926 | }); | ||
| 6927 | try testArgs(@Vector(16, f16), @Vector(16, f80), .{ | ||
| 6928 | -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, | ||
| 6929 | }); | ||
| 6930 | try testArgs(@Vector(32, f16), @Vector(32, f80), .{ | ||
| 6931 | -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, | ||
| 6932 | 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), | ||
| 6933 | }); | ||
| 6934 | |||
| 6935 | try testArgs(@Vector(1, f32), @Vector(1, f80), .{ | ||
| 6936 | 1e0, | ||
| 6937 | }); | ||
| 6938 | try testArgs(@Vector(2, f32), @Vector(2, f80), .{ | ||
| 6939 | -inf(f80), -1e-2, | ||
| 6940 | }); | ||
| 6941 | try testArgs(@Vector(4, f32), @Vector(4, f80), .{ | ||
| 6942 | -1e2, 1e-1, fmax(f80), 1e-2, | ||
| 6943 | }); | ||
| 6944 | try testArgs(@Vector(8, f32), @Vector(8, f80), .{ | ||
| 6945 | -1e-1, tmin(f80), -1e3, fmin(f80), nan(f80), -1e-3, 1e1, 1e4, | ||
| 6946 | }); | ||
| 6947 | try testArgs(@Vector(16, f32), @Vector(16, f80), .{ | ||
| 6948 | -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, | ||
| 6949 | }); | ||
| 6950 | try testArgs(@Vector(32, f32), @Vector(32, f80), .{ | ||
| 6951 | -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, | ||
| 6952 | 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), | ||
| 6953 | }); | ||
| 6954 | |||
| 6955 | try testArgs(@Vector(1, f64), @Vector(1, f80), .{ | ||
| 6956 | 1e0, | ||
| 6957 | }); | ||
| 6958 | try testArgs(@Vector(2, f64), @Vector(2, f80), .{ | ||
| 6959 | -inf(f80), -1e-2, | ||
| 6960 | }); | ||
| 6961 | try testArgs(@Vector(4, f64), @Vector(4, f80), .{ | ||
| 6962 | -1e2, 1e-1, fmax(f80), 1e-2, | ||
| 6963 | }); | ||
| 6964 | try testArgs(@Vector(8, f64), @Vector(8, f80), .{ | ||
| 6965 | -1e-1, tmin(f80), -1e3, fmin(f80), nan(f80), -1e-3, 1e1, 1e4, | ||
| 6966 | }); | ||
| 6967 | try testArgs(@Vector(16, f64), @Vector(16, f80), .{ | ||
| 6968 | -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, | ||
| 6969 | }); | ||
| 6970 | try testArgs(@Vector(32, f64), @Vector(32, f80), .{ | ||
| 6971 | -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, | ||
| 6972 | 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), | ||
| 6973 | }); | ||
| 6974 | |||
| 6975 | try testArgs(@Vector(1, f80), @Vector(1, f80), .{ | ||
| 6976 | 1e0, | ||
| 6977 | }); | ||
| 6978 | try testArgs(@Vector(2, f80), @Vector(2, f80), .{ | ||
| 6979 | -inf(f80), -1e-2, | ||
| 6980 | }); | ||
| 6981 | try testArgs(@Vector(4, f80), @Vector(4, f80), .{ | ||
| 6982 | -1e2, 1e-1, fmax(f80), 1e-2, | ||
| 6983 | }); | ||
| 6984 | try testArgs(@Vector(8, f80), @Vector(8, f80), .{ | ||
| 6985 | -1e-1, tmin(f80), -1e3, fmin(f80), nan(f80), -1e-3, 1e1, 1e4, | ||
| 6986 | }); | ||
| 6987 | try testArgs(@Vector(16, f80), @Vector(16, f80), .{ | ||
| 6988 | -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, | ||
| 6989 | }); | ||
| 6990 | try testArgs(@Vector(32, f80), @Vector(32, f80), .{ | ||
| 6991 | -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, | ||
| 6992 | 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), | ||
| 6993 | }); | ||
| 6994 | |||
| 6995 | try testArgs(@Vector(1, f128), @Vector(1, f80), .{ | ||
| 6996 | 1e0, | ||
| 6997 | }); | ||
| 6998 | try testArgs(@Vector(2, f128), @Vector(2, f80), .{ | ||
| 6999 | -inf(f80), -1e-2, | ||
| 7000 | }); | ||
| 7001 | try testArgs(@Vector(4, f128), @Vector(4, f80), .{ | ||
| 7002 | -1e2, 1e-1, fmax(f80), 1e-2, | ||
| 7003 | }); | ||
| 7004 | try testArgs(@Vector(8, f128), @Vector(8, f80), .{ | ||
| 7005 | -1e-1, tmin(f80), -1e3, fmin(f80), nan(f80), -1e-3, 1e1, 1e4, | ||
| 7006 | }); | ||
| 7007 | try testArgs(@Vector(16, f128), @Vector(16, f80), .{ | ||
| 7008 | -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, | ||
| 7009 | }); | ||
| 7010 | try testArgs(@Vector(32, f128), @Vector(32, f80), .{ | ||
| 7011 | -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, | ||
| 7012 | 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), | ||
| 7013 | }); | ||
| 7014 | |||
| 7015 | try testArgs(@Vector(1, f16), @Vector(1, f128), .{ | ||
| 7016 | 1e0, | ||
| 7017 | }); | ||
| 7018 | try testArgs(@Vector(2, f16), @Vector(2, f128), .{ | ||
| 7019 | -inf(f128), -1e-2, | ||
| 7020 | }); | ||
| 7021 | try testArgs(@Vector(4, f16), @Vector(4, f128), .{ | ||
| 7022 | -1e2, 1e-1, fmax(f128), 1e-2, | ||
| 7023 | }); | ||
| 7024 | try testArgs(@Vector(8, f16), @Vector(8, f128), .{ | ||
| 7025 | -1e-1, tmin(f128), -1e3, fmin(f128), nan(f128), -1e-3, 1e1, 1e4, | ||
| 7026 | }); | ||
| 7027 | try testArgs(@Vector(16, f16), @Vector(16, f128), .{ | ||
| 7028 | -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, | ||
| 7029 | }); | ||
| 7030 | try testArgs(@Vector(32, f16), @Vector(32, f128), .{ | ||
| 7031 | -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, | ||
| 7032 | 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), | ||
| 7033 | }); | ||
| 7034 | |||
| 7035 | try testArgs(@Vector(1, f32), @Vector(1, f128), .{ | ||
| 7036 | 1e0, | ||
| 7037 | }); | ||
| 7038 | try testArgs(@Vector(2, f32), @Vector(2, f128), .{ | ||
| 7039 | -inf(f128), -1e-2, | ||
| 7040 | }); | ||
| 7041 | try testArgs(@Vector(4, f32), @Vector(4, f128), .{ | ||
| 7042 | -1e2, 1e-1, fmax(f128), 1e-2, | ||
| 7043 | }); | ||
| 7044 | try testArgs(@Vector(8, f32), @Vector(8, f128), .{ | ||
| 7045 | -1e-1, tmin(f128), -1e3, fmin(f128), nan(f128), -1e-3, 1e1, 1e4, | ||
| 7046 | }); | ||
| 7047 | try testArgs(@Vector(16, f32), @Vector(16, f128), .{ | ||
| 7048 | -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, | ||
| 7049 | }); | ||
| 7050 | try testArgs(@Vector(32, f32), @Vector(32, f128), .{ | ||
| 7051 | -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, | ||
| 7052 | 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), | ||
| 7053 | }); | ||
| 7054 | |||
| 7055 | try testArgs(@Vector(1, f64), @Vector(1, f128), .{ | ||
| 7056 | 1e0, | ||
| 7057 | }); | ||
| 7058 | try testArgs(@Vector(2, f64), @Vector(2, f128), .{ | ||
| 7059 | -inf(f128), -1e-2, | ||
| 7060 | }); | ||
| 7061 | try testArgs(@Vector(4, f64), @Vector(4, f128), .{ | ||
| 7062 | -1e2, 1e-1, fmax(f128), 1e-2, | ||
| 7063 | }); | ||
| 7064 | try testArgs(@Vector(8, f64), @Vector(8, f128), .{ | ||
| 7065 | -1e-1, tmin(f128), -1e3, fmin(f128), nan(f128), -1e-3, 1e1, 1e4, | ||
| 7066 | }); | ||
| 7067 | try testArgs(@Vector(16, f64), @Vector(16, f128), .{ | ||
| 7068 | -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, | ||
| 7069 | }); | ||
| 7070 | try testArgs(@Vector(32, f64), @Vector(32, f128), .{ | ||
| 7071 | -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, | ||
| 7072 | 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), | ||
| 7073 | }); | ||
| 7074 | |||
| 7075 | try testArgs(@Vector(1, f80), @Vector(1, f128), .{ | ||
| 7076 | 1e0, | ||
| 7077 | }); | ||
| 7078 | try testArgs(@Vector(2, f80), @Vector(2, f128), .{ | ||
| 7079 | -inf(f128), -1e-2, | ||
| 7080 | }); | ||
| 7081 | try testArgs(@Vector(4, f80), @Vector(4, f128), .{ | ||
| 7082 | -1e2, 1e-1, fmax(f128), 1e-2, | ||
| 7083 | }); | ||
| 7084 | try testArgs(@Vector(8, f80), @Vector(8, f128), .{ | ||
| 7085 | -1e-1, tmin(f128), -1e3, fmin(f128), nan(f128), -1e-3, 1e1, 1e4, | ||
| 7086 | }); | ||
| 7087 | try testArgs(@Vector(16, f80), @Vector(16, f128), .{ | ||
| 7088 | -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, | ||
| 7089 | }); | ||
| 7090 | try testArgs(@Vector(32, f80), @Vector(32, f128), .{ | ||
| 7091 | -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, | ||
| 7092 | 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), | ||
| 7093 | }); | ||
| 7094 | |||
| 7095 | try testArgs(@Vector(1, f128), @Vector(1, f128), .{ | ||
| 7096 | 1e0, | ||
| 7097 | }); | ||
| 7098 | try testArgs(@Vector(2, f128), @Vector(2, f128), .{ | ||
| 7099 | -inf(f128), -1e-2, | ||
| 7100 | }); | ||
| 7101 | try testArgs(@Vector(4, f128), @Vector(4, f128), .{ | ||
| 7102 | -1e2, 1e-1, fmax(f128), 1e-2, | ||
| 7103 | }); | ||
| 7104 | try testArgs(@Vector(8, f128), @Vector(8, f128), .{ | ||
| 7105 | -1e-1, tmin(f128), -1e3, fmin(f128), nan(f128), -1e-3, 1e1, 1e4, | ||
| 7106 | }); | ||
| 7107 | try testArgs(@Vector(16, f128), @Vector(16, f128), .{ | ||
| 7108 | -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, | ||
| 7109 | }); | ||
| 7110 | try testArgs(@Vector(32, f128), @Vector(32, f128), .{ | ||
| 7111 | -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, | ||
| 7112 | 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), | ||
| 7113 | }); | ||
| 7114 | } | ||
| 7115 | }; | ||
| 7116 | } | ||
| 7117 | |||
| 1626 | fn binary(comptime op: anytype, comptime opts: struct { strict: bool = false }) type { | 7118 | fn binary(comptime op: anytype, comptime opts: struct { strict: bool = false }) type { |
| 1627 | return struct { | 7119 | return struct { |
| 1628 | // noinline so that `mem_lhs` and `mem_rhs` are on the stack | 7120 | // noinline so that `mem_lhs` and `mem_rhs` are on the stack |
| ... | @@ -1714,18 +7206,18 @@ fn binary(comptime op: anytype, comptime opts: struct { strict: bool = false }) | ... | @@ -1714,18 +7206,18 @@ fn binary(comptime op: anytype, comptime opts: struct { strict: bool = false }) |
| 1714 | try testArgs(f16, -nan(f16), -nan(f16)); | 7206 | try testArgs(f16, -nan(f16), -nan(f16)); |
| 1715 | try testArgs(f16, -nan(f16), -inf(f16)); | 7207 | try testArgs(f16, -nan(f16), -inf(f16)); |
| 1716 | try testArgs(f16, -nan(f16), -fmax(f16)); | 7208 | try testArgs(f16, -nan(f16), -fmax(f16)); |
| 1717 | try testArgs(f16, -nan(f16), -10.0); | 7209 | try testArgs(f16, -nan(f16), -1e1); |
| 1718 | try testArgs(f16, -nan(f16), -1.0); | 7210 | try testArgs(f16, -nan(f16), -1e0); |
| 1719 | try testArgs(f16, -nan(f16), -0.1); | 7211 | try testArgs(f16, -nan(f16), -1e-1); |
| 1720 | try testArgs(f16, -nan(f16), -fmin(f16)); | 7212 | try testArgs(f16, -nan(f16), -fmin(f16)); |
| 1721 | try testArgs(f16, -nan(f16), -tmin(f16)); | 7213 | try testArgs(f16, -nan(f16), -tmin(f16)); |
| 1722 | try testArgs(f16, -nan(f16), -0.0); | 7214 | try testArgs(f16, -nan(f16), -0.0); |
| 1723 | try testArgs(f16, -nan(f16), 0.0); | 7215 | try testArgs(f16, -nan(f16), 0.0); |
| 1724 | try testArgs(f16, -nan(f16), tmin(f16)); | 7216 | try testArgs(f16, -nan(f16), tmin(f16)); |
| 1725 | try testArgs(f16, -nan(f16), fmin(f16)); | 7217 | try testArgs(f16, -nan(f16), fmin(f16)); |
| 1726 | try testArgs(f16, -nan(f16), 0.1); | 7218 | try testArgs(f16, -nan(f16), 1e-1); |
| 1727 | try testArgs(f16, -nan(f16), 1.0); | 7219 | try testArgs(f16, -nan(f16), 1e0); |
| 1728 | try testArgs(f16, -nan(f16), 10.0); | 7220 | try testArgs(f16, -nan(f16), 1e1); |
| 1729 | try testArgs(f16, -nan(f16), fmax(f16)); | 7221 | try testArgs(f16, -nan(f16), fmax(f16)); |
| 1730 | try testArgs(f16, -nan(f16), inf(f16)); | 7222 | try testArgs(f16, -nan(f16), inf(f16)); |
| 1731 | try testArgs(f16, -nan(f16), nan(f16)); | 7223 | try testArgs(f16, -nan(f16), nan(f16)); |
| ... | @@ -1733,18 +7225,18 @@ fn binary(comptime op: anytype, comptime opts: struct { strict: bool = false }) | ... | @@ -1733,18 +7225,18 @@ fn binary(comptime op: anytype, comptime opts: struct { strict: bool = false }) |
| 1733 | try testArgs(f16, -inf(f16), -nan(f16)); | 7225 | try testArgs(f16, -inf(f16), -nan(f16)); |
| 1734 | try testArgs(f16, -inf(f16), -inf(f16)); | 7226 | try testArgs(f16, -inf(f16), -inf(f16)); |
| 1735 | try testArgs(f16, -inf(f16), -fmax(f16)); | 7227 | try testArgs(f16, -inf(f16), -fmax(f16)); |
| 1736 | try testArgs(f16, -inf(f16), -10.0); | 7228 | try testArgs(f16, -inf(f16), -1e1); |
| 1737 | try testArgs(f16, -inf(f16), -1.0); | 7229 | try testArgs(f16, -inf(f16), -1e0); |
| 1738 | try testArgs(f16, -inf(f16), -0.1); | 7230 | try testArgs(f16, -inf(f16), -1e-1); |
| 1739 | try testArgs(f16, -inf(f16), -fmin(f16)); | 7231 | try testArgs(f16, -inf(f16), -fmin(f16)); |
| 1740 | try testArgs(f16, -inf(f16), -tmin(f16)); | 7232 | try testArgs(f16, -inf(f16), -tmin(f16)); |
| 1741 | try testArgs(f16, -inf(f16), -0.0); | 7233 | try testArgs(f16, -inf(f16), -0.0); |
| 1742 | try testArgs(f16, -inf(f16), 0.0); | 7234 | try testArgs(f16, -inf(f16), 0.0); |
| 1743 | try testArgs(f16, -inf(f16), tmin(f16)); | 7235 | try testArgs(f16, -inf(f16), tmin(f16)); |
| 1744 | try testArgs(f16, -inf(f16), fmin(f16)); | 7236 | try testArgs(f16, -inf(f16), fmin(f16)); |
| 1745 | try testArgs(f16, -inf(f16), 0.1); | 7237 | try testArgs(f16, -inf(f16), 1e-1); |
| 1746 | try testArgs(f16, -inf(f16), 1.0); | 7238 | try testArgs(f16, -inf(f16), 1e0); |
| 1747 | try testArgs(f16, -inf(f16), 10.0); | 7239 | try testArgs(f16, -inf(f16), 1e1); |
| 1748 | try testArgs(f16, -inf(f16), fmax(f16)); | 7240 | try testArgs(f16, -inf(f16), fmax(f16)); |
| 1749 | try testArgs(f16, -inf(f16), inf(f16)); | 7241 | try testArgs(f16, -inf(f16), inf(f16)); |
| 1750 | try testArgs(f16, -inf(f16), nan(f16)); | 7242 | try testArgs(f16, -inf(f16), nan(f16)); |
| ... | @@ -1752,94 +7244,94 @@ fn binary(comptime op: anytype, comptime opts: struct { strict: bool = false }) | ... | @@ -1752,94 +7244,94 @@ fn binary(comptime op: anytype, comptime opts: struct { strict: bool = false }) |
| 1752 | try testArgs(f16, -fmax(f16), -nan(f16)); | 7244 | try testArgs(f16, -fmax(f16), -nan(f16)); |
| 1753 | try testArgs(f16, -fmax(f16), -inf(f16)); | 7245 | try testArgs(f16, -fmax(f16), -inf(f16)); |
| 1754 | try testArgs(f16, -fmax(f16), -fmax(f16)); | 7246 | try testArgs(f16, -fmax(f16), -fmax(f16)); |
| 1755 | try testArgs(f16, -fmax(f16), -10.0); | 7247 | try testArgs(f16, -fmax(f16), -1e1); |
| 1756 | try testArgs(f16, -fmax(f16), -1.0); | 7248 | try testArgs(f16, -fmax(f16), -1e0); |
| 1757 | try testArgs(f16, -fmax(f16), -0.1); | 7249 | try testArgs(f16, -fmax(f16), -1e-1); |
| 1758 | try testArgs(f16, -fmax(f16), -fmin(f16)); | 7250 | try testArgs(f16, -fmax(f16), -fmin(f16)); |
| 1759 | try testArgs(f16, -fmax(f16), -tmin(f16)); | 7251 | try testArgs(f16, -fmax(f16), -tmin(f16)); |
| 1760 | try testArgs(f16, -fmax(f16), -0.0); | 7252 | try testArgs(f16, -fmax(f16), -0.0); |
| 1761 | try testArgs(f16, -fmax(f16), 0.0); | 7253 | try testArgs(f16, -fmax(f16), 0.0); |
| 1762 | try testArgs(f16, -fmax(f16), tmin(f16)); | 7254 | try testArgs(f16, -fmax(f16), tmin(f16)); |
| 1763 | try testArgs(f16, -fmax(f16), fmin(f16)); | 7255 | try testArgs(f16, -fmax(f16), fmin(f16)); |
| 1764 | try testArgs(f16, -fmax(f16), 0.1); | 7256 | try testArgs(f16, -fmax(f16), 1e-1); |
| 1765 | try testArgs(f16, -fmax(f16), 1.0); | 7257 | try testArgs(f16, -fmax(f16), 1e0); |
| 1766 | try testArgs(f16, -fmax(f16), 10.0); | 7258 | try testArgs(f16, -fmax(f16), 1e1); |
| 1767 | try testArgs(f16, -fmax(f16), fmax(f16)); | 7259 | try testArgs(f16, -fmax(f16), fmax(f16)); |
| 1768 | try testArgs(f16, -fmax(f16), inf(f16)); | 7260 | try testArgs(f16, -fmax(f16), inf(f16)); |
| 1769 | try testArgs(f16, -fmax(f16), nan(f16)); | 7261 | try testArgs(f16, -fmax(f16), nan(f16)); |
| 1770 | 7262 | ||
| 1771 | try testArgs(f16, -10.0, -nan(f16)); | 7263 | try testArgs(f16, -1e1, -nan(f16)); |
| 1772 | try testArgs(f16, -10.0, -inf(f16)); | 7264 | try testArgs(f16, -1e1, -inf(f16)); |
| 1773 | try testArgs(f16, -10.0, -fmax(f16)); | 7265 | try testArgs(f16, -1e1, -fmax(f16)); |
| 1774 | try testArgs(f16, -10.0, -10.0); | 7266 | try testArgs(f16, -1e1, -1e1); |
| 1775 | try testArgs(f16, -10.0, -1.0); | 7267 | try testArgs(f16, -1e1, -1e0); |
| 1776 | try testArgs(f16, -10.0, -0.1); | 7268 | try testArgs(f16, -1e1, -1e-1); |
| 1777 | try testArgs(f16, -10.0, -fmin(f16)); | 7269 | try testArgs(f16, -1e1, -fmin(f16)); |
| 1778 | try testArgs(f16, -10.0, -tmin(f16)); | 7270 | try testArgs(f16, -1e1, -tmin(f16)); |
| 1779 | try testArgs(f16, -10.0, -0.0); | 7271 | try testArgs(f16, -1e1, -0.0); |
| 1780 | try testArgs(f16, -10.0, 0.0); | 7272 | try testArgs(f16, -1e1, 0.0); |
| 1781 | try testArgs(f16, -10.0, tmin(f16)); | 7273 | try testArgs(f16, -1e1, tmin(f16)); |
| 1782 | try testArgs(f16, -10.0, fmin(f16)); | 7274 | try testArgs(f16, -1e1, fmin(f16)); |
| 1783 | try testArgs(f16, -10.0, 0.1); | 7275 | try testArgs(f16, -1e1, 1e-1); |
| 1784 | try testArgs(f16, -10.0, 1.0); | 7276 | try testArgs(f16, -1e1, 1e0); |
| 1785 | try testArgs(f16, -10.0, 10.0); | 7277 | try testArgs(f16, -1e1, 1e1); |
| 1786 | try testArgs(f16, -10.0, fmax(f16)); | 7278 | try testArgs(f16, -1e1, fmax(f16)); |
| 1787 | try testArgs(f16, -10.0, inf(f16)); | 7279 | try testArgs(f16, -1e1, inf(f16)); |
| 1788 | try testArgs(f16, -10.0, nan(f16)); | 7280 | try testArgs(f16, -1e1, nan(f16)); |
| 1789 | 7281 | ||
| 1790 | try testArgs(f16, -1.0, -nan(f16)); | 7282 | try testArgs(f16, -1e0, -nan(f16)); |
| 1791 | try testArgs(f16, -1.0, -inf(f16)); | 7283 | try testArgs(f16, -1e0, -inf(f16)); |
| 1792 | try testArgs(f16, -1.0, -fmax(f16)); | 7284 | try testArgs(f16, -1e0, -fmax(f16)); |
| 1793 | try testArgs(f16, -1.0, -10.0); | 7285 | try testArgs(f16, -1e0, -1e1); |
| 1794 | try testArgs(f16, -1.0, -1.0); | 7286 | try testArgs(f16, -1e0, -1e0); |
| 1795 | try testArgs(f16, -1.0, -0.1); | 7287 | try testArgs(f16, -1e0, -1e-1); |
| 1796 | try testArgs(f16, -1.0, -fmin(f16)); | 7288 | try testArgs(f16, -1e0, -fmin(f16)); |
| 1797 | try testArgs(f16, -1.0, -tmin(f16)); | 7289 | try testArgs(f16, -1e0, -tmin(f16)); |
| 1798 | try testArgs(f16, -1.0, -0.0); | 7290 | try testArgs(f16, -1e0, -0.0); |
| 1799 | try testArgs(f16, -1.0, 0.0); | 7291 | try testArgs(f16, -1e0, 0.0); |
| 1800 | try testArgs(f16, -1.0, tmin(f16)); | 7292 | try testArgs(f16, -1e0, tmin(f16)); |
| 1801 | try testArgs(f16, -1.0, fmin(f16)); | 7293 | try testArgs(f16, -1e0, fmin(f16)); |
| 1802 | try testArgs(f16, -1.0, 0.1); | 7294 | try testArgs(f16, -1e0, 1e-1); |
| 1803 | try testArgs(f16, -1.0, 1.0); | 7295 | try testArgs(f16, -1e0, 1e0); |
| 1804 | try testArgs(f16, -1.0, 10.0); | 7296 | try testArgs(f16, -1e0, 1e1); |
| 1805 | try testArgs(f16, -1.0, fmax(f16)); | 7297 | try testArgs(f16, -1e0, fmax(f16)); |
| 1806 | try testArgs(f16, -1.0, inf(f16)); | 7298 | try testArgs(f16, -1e0, inf(f16)); |
| 1807 | try testArgs(f16, -1.0, nan(f16)); | 7299 | try testArgs(f16, -1e0, nan(f16)); |
| 1808 | 7300 | ||
| 1809 | try testArgs(f16, -0.1, -nan(f16)); | 7301 | try testArgs(f16, -1e-1, -nan(f16)); |
| 1810 | try testArgs(f16, -0.1, -inf(f16)); | 7302 | try testArgs(f16, -1e-1, -inf(f16)); |
| 1811 | try testArgs(f16, -0.1, -fmax(f16)); | 7303 | try testArgs(f16, -1e-1, -fmax(f16)); |
| 1812 | try testArgs(f16, -0.1, -10.0); | 7304 | try testArgs(f16, -1e-1, -1e1); |
| 1813 | try testArgs(f16, -0.1, -1.0); | 7305 | try testArgs(f16, -1e-1, -1e0); |
| 1814 | try testArgs(f16, -0.1, -0.1); | 7306 | try testArgs(f16, -1e-1, -1e-1); |
| 1815 | try testArgs(f16, -0.1, -fmin(f16)); | 7307 | try testArgs(f16, -1e-1, -fmin(f16)); |
| 1816 | try testArgs(f16, -0.1, -tmin(f16)); | 7308 | try testArgs(f16, -1e-1, -tmin(f16)); |
| 1817 | try testArgs(f16, -0.1, -0.0); | 7309 | try testArgs(f16, -1e-1, -0.0); |
| 1818 | try testArgs(f16, -0.1, 0.0); | 7310 | try testArgs(f16, -1e-1, 0.0); |
| 1819 | try testArgs(f16, -0.1, tmin(f16)); | 7311 | try testArgs(f16, -1e-1, tmin(f16)); |
| 1820 | try testArgs(f16, -0.1, fmin(f16)); | 7312 | try testArgs(f16, -1e-1, fmin(f16)); |
| 1821 | try testArgs(f16, -0.1, 0.1); | 7313 | try testArgs(f16, -1e-1, 1e-1); |
| 1822 | try testArgs(f16, -0.1, 1.0); | 7314 | try testArgs(f16, -1e-1, 1e0); |
| 1823 | try testArgs(f16, -0.1, 10.0); | 7315 | try testArgs(f16, -1e-1, 1e1); |
| 1824 | try testArgs(f16, -0.1, fmax(f16)); | 7316 | try testArgs(f16, -1e-1, fmax(f16)); |
| 1825 | try testArgs(f16, -0.1, inf(f16)); | 7317 | try testArgs(f16, -1e-1, inf(f16)); |
| 1826 | try testArgs(f16, -0.1, nan(f16)); | 7318 | try testArgs(f16, -1e-1, nan(f16)); |
| 1827 | 7319 | ||
| 1828 | try testArgs(f16, -fmin(f16), -nan(f16)); | 7320 | try testArgs(f16, -fmin(f16), -nan(f16)); |
| 1829 | try testArgs(f16, -fmin(f16), -inf(f16)); | 7321 | try testArgs(f16, -fmin(f16), -inf(f16)); |
| 1830 | try testArgs(f16, -fmin(f16), -fmax(f16)); | 7322 | try testArgs(f16, -fmin(f16), -fmax(f16)); |
| 1831 | try testArgs(f16, -fmin(f16), -10.0); | 7323 | try testArgs(f16, -fmin(f16), -1e1); |
| 1832 | try testArgs(f16, -fmin(f16), -1.0); | 7324 | try testArgs(f16, -fmin(f16), -1e0); |
| 1833 | try testArgs(f16, -fmin(f16), -0.1); | 7325 | try testArgs(f16, -fmin(f16), -1e-1); |
| 1834 | try testArgs(f16, -fmin(f16), -fmin(f16)); | 7326 | try testArgs(f16, -fmin(f16), -fmin(f16)); |
| 1835 | try testArgs(f16, -fmin(f16), -tmin(f16)); | 7327 | try testArgs(f16, -fmin(f16), -tmin(f16)); |
| 1836 | try testArgs(f16, -fmin(f16), -0.0); | 7328 | try testArgs(f16, -fmin(f16), -0.0); |
| 1837 | try testArgs(f16, -fmin(f16), 0.0); | 7329 | try testArgs(f16, -fmin(f16), 0.0); |
| 1838 | try testArgs(f16, -fmin(f16), tmin(f16)); | 7330 | try testArgs(f16, -fmin(f16), tmin(f16)); |
| 1839 | try testArgs(f16, -fmin(f16), fmin(f16)); | 7331 | try testArgs(f16, -fmin(f16), fmin(f16)); |
| 1840 | try testArgs(f16, -fmin(f16), 0.1); | 7332 | try testArgs(f16, -fmin(f16), 1e-1); |
| 1841 | try testArgs(f16, -fmin(f16), 1.0); | 7333 | try testArgs(f16, -fmin(f16), 1e0); |
| 1842 | try testArgs(f16, -fmin(f16), 10.0); | 7334 | try testArgs(f16, -fmin(f16), 1e1); |
| 1843 | try testArgs(f16, -fmin(f16), fmax(f16)); | 7335 | try testArgs(f16, -fmin(f16), fmax(f16)); |
| 1844 | try testArgs(f16, -fmin(f16), inf(f16)); | 7336 | try testArgs(f16, -fmin(f16), inf(f16)); |
| 1845 | try testArgs(f16, -fmin(f16), nan(f16)); | 7337 | try testArgs(f16, -fmin(f16), nan(f16)); |
| ... | @@ -1847,18 +7339,18 @@ fn binary(comptime op: anytype, comptime opts: struct { strict: bool = false }) | ... | @@ -1847,18 +7339,18 @@ fn binary(comptime op: anytype, comptime opts: struct { strict: bool = false }) |
| 1847 | try testArgs(f16, -tmin(f16), -nan(f16)); | 7339 | try testArgs(f16, -tmin(f16), -nan(f16)); |
| 1848 | try testArgs(f16, -tmin(f16), -inf(f16)); | 7340 | try testArgs(f16, -tmin(f16), -inf(f16)); |
| 1849 | try testArgs(f16, -tmin(f16), -fmax(f16)); | 7341 | try testArgs(f16, -tmin(f16), -fmax(f16)); |
| 1850 | try testArgs(f16, -tmin(f16), -10.0); | 7342 | try testArgs(f16, -tmin(f16), -1e1); |
| 1851 | try testArgs(f16, -tmin(f16), -1.0); | 7343 | try testArgs(f16, -tmin(f16), -1e0); |
| 1852 | try testArgs(f16, -tmin(f16), -0.1); | 7344 | try testArgs(f16, -tmin(f16), -1e-1); |
| 1853 | try testArgs(f16, -tmin(f16), -fmin(f16)); | 7345 | try testArgs(f16, -tmin(f16), -fmin(f16)); |
| 1854 | try testArgs(f16, -tmin(f16), -tmin(f16)); | 7346 | try testArgs(f16, -tmin(f16), -tmin(f16)); |
| 1855 | try testArgs(f16, -tmin(f16), -0.0); | 7347 | try testArgs(f16, -tmin(f16), -0.0); |
| 1856 | try testArgs(f16, -tmin(f16), 0.0); | 7348 | try testArgs(f16, -tmin(f16), 0.0); |
| 1857 | try testArgs(f16, -tmin(f16), tmin(f16)); | 7349 | try testArgs(f16, -tmin(f16), tmin(f16)); |
| 1858 | try testArgs(f16, -tmin(f16), fmin(f16)); | 7350 | try testArgs(f16, -tmin(f16), fmin(f16)); |
| 1859 | try testArgs(f16, -tmin(f16), 0.1); | 7351 | try testArgs(f16, -tmin(f16), 1e-1); |
| 1860 | try testArgs(f16, -tmin(f16), 1.0); | 7352 | try testArgs(f16, -tmin(f16), 1e0); |
| 1861 | try testArgs(f16, -tmin(f16), 10.0); | 7353 | try testArgs(f16, -tmin(f16), 1e1); |
| 1862 | try testArgs(f16, -tmin(f16), fmax(f16)); | 7354 | try testArgs(f16, -tmin(f16), fmax(f16)); |
| 1863 | try testArgs(f16, -tmin(f16), inf(f16)); | 7355 | try testArgs(f16, -tmin(f16), inf(f16)); |
| 1864 | try testArgs(f16, -tmin(f16), nan(f16)); | 7356 | try testArgs(f16, -tmin(f16), nan(f16)); |
| ... | @@ -1866,18 +7358,18 @@ fn binary(comptime op: anytype, comptime opts: struct { strict: bool = false }) | ... | @@ -1866,18 +7358,18 @@ fn binary(comptime op: anytype, comptime opts: struct { strict: bool = false }) |
| 1866 | try testArgs(f16, -0.0, -nan(f16)); | 7358 | try testArgs(f16, -0.0, -nan(f16)); |
| 1867 | try testArgs(f16, -0.0, -inf(f16)); | 7359 | try testArgs(f16, -0.0, -inf(f16)); |
| 1868 | try testArgs(f16, -0.0, -fmax(f16)); | 7360 | try testArgs(f16, -0.0, -fmax(f16)); |
| 1869 | try testArgs(f16, -0.0, -10.0); | 7361 | try testArgs(f16, -0.0, -1e1); |
| 1870 | try testArgs(f16, -0.0, -1.0); | 7362 | try testArgs(f16, -0.0, -1e0); |
| 1871 | try testArgs(f16, -0.0, -0.1); | 7363 | try testArgs(f16, -0.0, -1e-1); |
| 1872 | try testArgs(f16, -0.0, -fmin(f16)); | 7364 | try testArgs(f16, -0.0, -fmin(f16)); |
| 1873 | try testArgs(f16, -0.0, -tmin(f16)); | 7365 | try testArgs(f16, -0.0, -tmin(f16)); |
| 1874 | try testArgs(f16, -0.0, -0.0); | 7366 | try testArgs(f16, -0.0, -0.0); |
| 1875 | try testArgs(f16, -0.0, 0.0); | 7367 | try testArgs(f16, -0.0, 0.0); |
| 1876 | try testArgs(f16, -0.0, tmin(f16)); | 7368 | try testArgs(f16, -0.0, tmin(f16)); |
| 1877 | try testArgs(f16, -0.0, fmin(f16)); | 7369 | try testArgs(f16, -0.0, fmin(f16)); |
| 1878 | try testArgs(f16, -0.0, 0.1); | 7370 | try testArgs(f16, -0.0, 1e-1); |
| 1879 | try testArgs(f16, -0.0, 1.0); | 7371 | try testArgs(f16, -0.0, 1e0); |
| 1880 | try testArgs(f16, -0.0, 10.0); | 7372 | try testArgs(f16, -0.0, 1e1); |
| 1881 | try testArgs(f16, -0.0, fmax(f16)); | 7373 | try testArgs(f16, -0.0, fmax(f16)); |
| 1882 | try testArgs(f16, -0.0, inf(f16)); | 7374 | try testArgs(f16, -0.0, inf(f16)); |
| 1883 | try testArgs(f16, -0.0, nan(f16)); | 7375 | try testArgs(f16, -0.0, nan(f16)); |
| ... | @@ -1885,18 +7377,18 @@ fn binary(comptime op: anytype, comptime opts: struct { strict: bool = false }) | ... | @@ -1885,18 +7377,18 @@ fn binary(comptime op: anytype, comptime opts: struct { strict: bool = false }) |
| 1885 | try testArgs(f16, 0.0, -nan(f16)); | 7377 | try testArgs(f16, 0.0, -nan(f16)); |
| 1886 | try testArgs(f16, 0.0, -inf(f16)); | 7378 | try testArgs(f16, 0.0, -inf(f16)); |
| 1887 | try testArgs(f16, 0.0, -fmax(f16)); | 7379 | try testArgs(f16, 0.0, -fmax(f16)); |
| 1888 | try testArgs(f16, 0.0, -10.0); | 7380 | try testArgs(f16, 0.0, -1e1); |
| 1889 | try testArgs(f16, 0.0, -1.0); | 7381 | try testArgs(f16, 0.0, -1e0); |
| 1890 | try testArgs(f16, 0.0, -0.1); | 7382 | try testArgs(f16, 0.0, -1e-1); |
| 1891 | try testArgs(f16, 0.0, -fmin(f16)); | 7383 | try testArgs(f16, 0.0, -fmin(f16)); |
| 1892 | try testArgs(f16, 0.0, -tmin(f16)); | 7384 | try testArgs(f16, 0.0, -tmin(f16)); |
| 1893 | try testArgs(f16, 0.0, -0.0); | 7385 | try testArgs(f16, 0.0, -0.0); |
| 1894 | try testArgs(f16, 0.0, 0.0); | 7386 | try testArgs(f16, 0.0, 0.0); |
| 1895 | try testArgs(f16, 0.0, tmin(f16)); | 7387 | try testArgs(f16, 0.0, tmin(f16)); |
| 1896 | try testArgs(f16, 0.0, fmin(f16)); | 7388 | try testArgs(f16, 0.0, fmin(f16)); |
| 1897 | try testArgs(f16, 0.0, 0.1); | 7389 | try testArgs(f16, 0.0, 1e-1); |
| 1898 | try testArgs(f16, 0.0, 1.0); | 7390 | try testArgs(f16, 0.0, 1e0); |
| 1899 | try testArgs(f16, 0.0, 10.0); | 7391 | try testArgs(f16, 0.0, 1e1); |
| 1900 | try testArgs(f16, 0.0, fmax(f16)); | 7392 | try testArgs(f16, 0.0, fmax(f16)); |
| 1901 | try testArgs(f16, 0.0, inf(f16)); | 7393 | try testArgs(f16, 0.0, inf(f16)); |
| 1902 | try testArgs(f16, 0.0, nan(f16)); | 7394 | try testArgs(f16, 0.0, nan(f16)); |
| ... | @@ -1904,18 +7396,18 @@ fn binary(comptime op: anytype, comptime opts: struct { strict: bool = false }) | ... | @@ -1904,18 +7396,18 @@ fn binary(comptime op: anytype, comptime opts: struct { strict: bool = false }) |
| 1904 | try testArgs(f16, tmin(f16), -nan(f16)); | 7396 | try testArgs(f16, tmin(f16), -nan(f16)); |
| 1905 | try testArgs(f16, tmin(f16), -inf(f16)); | 7397 | try testArgs(f16, tmin(f16), -inf(f16)); |
| 1906 | try testArgs(f16, tmin(f16), -fmax(f16)); | 7398 | try testArgs(f16, tmin(f16), -fmax(f16)); |
| 1907 | try testArgs(f16, tmin(f16), -10.0); | 7399 | try testArgs(f16, tmin(f16), -1e1); |
| 1908 | try testArgs(f16, tmin(f16), -1.0); | 7400 | try testArgs(f16, tmin(f16), -1e0); |
| 1909 | try testArgs(f16, tmin(f16), -0.1); | 7401 | try testArgs(f16, tmin(f16), -1e-1); |
| 1910 | try testArgs(f16, tmin(f16), -fmin(f16)); | 7402 | try testArgs(f16, tmin(f16), -fmin(f16)); |
| 1911 | try testArgs(f16, tmin(f16), -tmin(f16)); | 7403 | try testArgs(f16, tmin(f16), -tmin(f16)); |
| 1912 | try testArgs(f16, tmin(f16), -0.0); | 7404 | try testArgs(f16, tmin(f16), -0.0); |
| 1913 | try testArgs(f16, tmin(f16), 0.0); | 7405 | try testArgs(f16, tmin(f16), 0.0); |
| 1914 | try testArgs(f16, tmin(f16), tmin(f16)); | 7406 | try testArgs(f16, tmin(f16), tmin(f16)); |
| 1915 | try testArgs(f16, tmin(f16), fmin(f16)); | 7407 | try testArgs(f16, tmin(f16), fmin(f16)); |
| 1916 | try testArgs(f16, tmin(f16), 0.1); | 7408 | try testArgs(f16, tmin(f16), 1e-1); |
| 1917 | try testArgs(f16, tmin(f16), 1.0); | 7409 | try testArgs(f16, tmin(f16), 1e0); |
| 1918 | try testArgs(f16, tmin(f16), 10.0); | 7410 | try testArgs(f16, tmin(f16), 1e1); |
| 1919 | try testArgs(f16, tmin(f16), fmax(f16)); | 7411 | try testArgs(f16, tmin(f16), fmax(f16)); |
| 1920 | try testArgs(f16, tmin(f16), inf(f16)); | 7412 | try testArgs(f16, tmin(f16), inf(f16)); |
| 1921 | try testArgs(f16, tmin(f16), nan(f16)); | 7413 | try testArgs(f16, tmin(f16), nan(f16)); |
| ... | @@ -1923,94 +7415,94 @@ fn binary(comptime op: anytype, comptime opts: struct { strict: bool = false }) | ... | @@ -1923,94 +7415,94 @@ fn binary(comptime op: anytype, comptime opts: struct { strict: bool = false }) |
| 1923 | try testArgs(f16, fmin(f16), -nan(f16)); | 7415 | try testArgs(f16, fmin(f16), -nan(f16)); |
| 1924 | try testArgs(f16, fmin(f16), -inf(f16)); | 7416 | try testArgs(f16, fmin(f16), -inf(f16)); |
| 1925 | try testArgs(f16, fmin(f16), -fmax(f16)); | 7417 | try testArgs(f16, fmin(f16), -fmax(f16)); |
| 1926 | try testArgs(f16, fmin(f16), -10.0); | 7418 | try testArgs(f16, fmin(f16), -1e1); |
| 1927 | try testArgs(f16, fmin(f16), -1.0); | 7419 | try testArgs(f16, fmin(f16), -1e0); |
| 1928 | try testArgs(f16, fmin(f16), -0.1); | 7420 | try testArgs(f16, fmin(f16), -1e-1); |
| 1929 | try testArgs(f16, fmin(f16), -fmin(f16)); | 7421 | try testArgs(f16, fmin(f16), -fmin(f16)); |
| 1930 | try testArgs(f16, fmin(f16), -tmin(f16)); | 7422 | try testArgs(f16, fmin(f16), -tmin(f16)); |
| 1931 | try testArgs(f16, fmin(f16), -0.0); | 7423 | try testArgs(f16, fmin(f16), -0.0); |
| 1932 | try testArgs(f16, fmin(f16), 0.0); | 7424 | try testArgs(f16, fmin(f16), 0.0); |
| 1933 | try testArgs(f16, fmin(f16), tmin(f16)); | 7425 | try testArgs(f16, fmin(f16), tmin(f16)); |
| 1934 | try testArgs(f16, fmin(f16), fmin(f16)); | 7426 | try testArgs(f16, fmin(f16), fmin(f16)); |
| 1935 | try testArgs(f16, fmin(f16), 0.1); | 7427 | try testArgs(f16, fmin(f16), 1e-1); |
| 1936 | try testArgs(f16, fmin(f16), 1.0); | 7428 | try testArgs(f16, fmin(f16), 1e0); |
| 1937 | try testArgs(f16, fmin(f16), 10.0); | 7429 | try testArgs(f16, fmin(f16), 1e1); |
| 1938 | try testArgs(f16, fmin(f16), fmax(f16)); | 7430 | try testArgs(f16, fmin(f16), fmax(f16)); |
| 1939 | try testArgs(f16, fmin(f16), inf(f16)); | 7431 | try testArgs(f16, fmin(f16), inf(f16)); |
| 1940 | try testArgs(f16, fmin(f16), nan(f16)); | 7432 | try testArgs(f16, fmin(f16), nan(f16)); |
| 1941 | 7433 | ||
| 1942 | try testArgs(f16, 0.1, -nan(f16)); | 7434 | try testArgs(f16, 1e-1, -nan(f16)); |
| 1943 | try testArgs(f16, 0.1, -inf(f16)); | 7435 | try testArgs(f16, 1e-1, -inf(f16)); |
| 1944 | try testArgs(f16, 0.1, -fmax(f16)); | 7436 | try testArgs(f16, 1e-1, -fmax(f16)); |
| 1945 | try testArgs(f16, 0.1, -10.0); | 7437 | try testArgs(f16, 1e-1, -1e1); |
| 1946 | try testArgs(f16, 0.1, -1.0); | 7438 | try testArgs(f16, 1e-1, -1e0); |
| 1947 | try testArgs(f16, 0.1, -0.1); | 7439 | try testArgs(f16, 1e-1, -1e-1); |
| 1948 | try testArgs(f16, 0.1, -fmin(f16)); | 7440 | try testArgs(f16, 1e-1, -fmin(f16)); |
| 1949 | try testArgs(f16, 0.1, -tmin(f16)); | 7441 | try testArgs(f16, 1e-1, -tmin(f16)); |
| 1950 | try testArgs(f16, 0.1, -0.0); | 7442 | try testArgs(f16, 1e-1, -0.0); |
| 1951 | try testArgs(f16, 0.1, 0.0); | 7443 | try testArgs(f16, 1e-1, 0.0); |
| 1952 | try testArgs(f16, 0.1, tmin(f16)); | 7444 | try testArgs(f16, 1e-1, tmin(f16)); |
| 1953 | try testArgs(f16, 0.1, fmin(f16)); | 7445 | try testArgs(f16, 1e-1, fmin(f16)); |
| 1954 | try testArgs(f16, 0.1, 0.1); | 7446 | try testArgs(f16, 1e-1, 1e-1); |
| 1955 | try testArgs(f16, 0.1, 1.0); | 7447 | try testArgs(f16, 1e-1, 1e0); |
| 1956 | try testArgs(f16, 0.1, 10.0); | 7448 | try testArgs(f16, 1e-1, 1e1); |
| 1957 | try testArgs(f16, 0.1, fmax(f16)); | 7449 | try testArgs(f16, 1e-1, fmax(f16)); |
| 1958 | try testArgs(f16, 0.1, inf(f16)); | 7450 | try testArgs(f16, 1e-1, inf(f16)); |
| 1959 | try testArgs(f16, 0.1, nan(f16)); | 7451 | try testArgs(f16, 1e-1, nan(f16)); |
| 1960 | 7452 | ||
| 1961 | try testArgs(f16, 1.0, -nan(f16)); | 7453 | try testArgs(f16, 1e0, -nan(f16)); |
| 1962 | try testArgs(f16, 1.0, -inf(f16)); | 7454 | try testArgs(f16, 1e0, -inf(f16)); |
| 1963 | try testArgs(f16, 1.0, -fmax(f16)); | 7455 | try testArgs(f16, 1e0, -fmax(f16)); |
| 1964 | try testArgs(f16, 1.0, -10.0); | 7456 | try testArgs(f16, 1e0, -1e1); |
| 1965 | try testArgs(f16, 1.0, -1.0); | 7457 | try testArgs(f16, 1e0, -1e0); |
| 1966 | try testArgs(f16, 1.0, -0.1); | 7458 | try testArgs(f16, 1e0, -1e-1); |
| 1967 | try testArgs(f16, 1.0, -fmin(f16)); | 7459 | try testArgs(f16, 1e0, -fmin(f16)); |
| 1968 | try testArgs(f16, 1.0, -tmin(f16)); | 7460 | try testArgs(f16, 1e0, -tmin(f16)); |
| 1969 | try testArgs(f16, 1.0, -0.0); | 7461 | try testArgs(f16, 1e0, -0.0); |
| 1970 | try testArgs(f16, 1.0, 0.0); | 7462 | try testArgs(f16, 1e0, 0.0); |
| 1971 | try testArgs(f16, 1.0, tmin(f16)); | 7463 | try testArgs(f16, 1e0, tmin(f16)); |
| 1972 | try testArgs(f16, 1.0, fmin(f16)); | 7464 | try testArgs(f16, 1e0, fmin(f16)); |
| 1973 | try testArgs(f16, 1.0, 0.1); | 7465 | try testArgs(f16, 1e0, 1e-1); |
| 1974 | try testArgs(f16, 1.0, 1.0); | 7466 | try testArgs(f16, 1e0, 1e0); |
| 1975 | try testArgs(f16, 1.0, 10.0); | 7467 | try testArgs(f16, 1e0, 1e1); |
| 1976 | try testArgs(f16, 1.0, fmax(f16)); | 7468 | try testArgs(f16, 1e0, fmax(f16)); |
| 1977 | try testArgs(f16, 1.0, inf(f16)); | 7469 | try testArgs(f16, 1e0, inf(f16)); |
| 1978 | try testArgs(f16, 1.0, nan(f16)); | 7470 | try testArgs(f16, 1e0, nan(f16)); |
| 1979 | 7471 | ||
| 1980 | try testArgs(f16, 10.0, -nan(f16)); | 7472 | try testArgs(f16, 1e1, -nan(f16)); |
| 1981 | try testArgs(f16, 10.0, -inf(f16)); | 7473 | try testArgs(f16, 1e1, -inf(f16)); |
| 1982 | try testArgs(f16, 10.0, -fmax(f16)); | 7474 | try testArgs(f16, 1e1, -fmax(f16)); |
| 1983 | try testArgs(f16, 10.0, -10.0); | 7475 | try testArgs(f16, 1e1, -1e1); |
| 1984 | try testArgs(f16, 10.0, -1.0); | 7476 | try testArgs(f16, 1e1, -1e0); |
| 1985 | try testArgs(f16, 10.0, -0.1); | 7477 | try testArgs(f16, 1e1, -1e-1); |
| 1986 | try testArgs(f16, 10.0, -fmin(f16)); | 7478 | try testArgs(f16, 1e1, -fmin(f16)); |
| 1987 | try testArgs(f16, 10.0, -tmin(f16)); | 7479 | try testArgs(f16, 1e1, -tmin(f16)); |
| 1988 | try testArgs(f16, 10.0, -0.0); | 7480 | try testArgs(f16, 1e1, -0.0); |
| 1989 | try testArgs(f16, 10.0, 0.0); | 7481 | try testArgs(f16, 1e1, 0.0); |
| 1990 | try testArgs(f16, 10.0, tmin(f16)); | 7482 | try testArgs(f16, 1e1, tmin(f16)); |
| 1991 | try testArgs(f16, 10.0, fmin(f16)); | 7483 | try testArgs(f16, 1e1, fmin(f16)); |
| 1992 | try testArgs(f16, 10.0, 0.1); | 7484 | try testArgs(f16, 1e1, 1e-1); |
| 1993 | try testArgs(f16, 10.0, 1.0); | 7485 | try testArgs(f16, 1e1, 1e0); |
| 1994 | try testArgs(f16, 10.0, 10.0); | 7486 | try testArgs(f16, 1e1, 1e1); |
| 1995 | try testArgs(f16, 10.0, fmax(f16)); | 7487 | try testArgs(f16, 1e1, fmax(f16)); |
| 1996 | try testArgs(f16, 10.0, inf(f16)); | 7488 | try testArgs(f16, 1e1, inf(f16)); |
| 1997 | try testArgs(f16, 10.0, nan(f16)); | 7489 | try testArgs(f16, 1e1, nan(f16)); |
| 1998 | 7490 | ||
| 1999 | try testArgs(f16, fmax(f16), -nan(f16)); | 7491 | try testArgs(f16, fmax(f16), -nan(f16)); |
| 2000 | try testArgs(f16, fmax(f16), -inf(f16)); | 7492 | try testArgs(f16, fmax(f16), -inf(f16)); |
| 2001 | try testArgs(f16, fmax(f16), -fmax(f16)); | 7493 | try testArgs(f16, fmax(f16), -fmax(f16)); |
| 2002 | try testArgs(f16, fmax(f16), -10.0); | 7494 | try testArgs(f16, fmax(f16), -1e1); |
| 2003 | try testArgs(f16, fmax(f16), -1.0); | 7495 | try testArgs(f16, fmax(f16), -1e0); |
| 2004 | try testArgs(f16, fmax(f16), -0.1); | 7496 | try testArgs(f16, fmax(f16), -1e-1); |
| 2005 | try testArgs(f16, fmax(f16), -fmin(f16)); | 7497 | try testArgs(f16, fmax(f16), -fmin(f16)); |
| 2006 | try testArgs(f16, fmax(f16), -tmin(f16)); | 7498 | try testArgs(f16, fmax(f16), -tmin(f16)); |
| 2007 | try testArgs(f16, fmax(f16), -0.0); | 7499 | try testArgs(f16, fmax(f16), -0.0); |
| 2008 | try testArgs(f16, fmax(f16), 0.0); | 7500 | try testArgs(f16, fmax(f16), 0.0); |
| 2009 | try testArgs(f16, fmax(f16), tmin(f16)); | 7501 | try testArgs(f16, fmax(f16), tmin(f16)); |
| 2010 | try testArgs(f16, fmax(f16), fmin(f16)); | 7502 | try testArgs(f16, fmax(f16), fmin(f16)); |
| 2011 | try testArgs(f16, fmax(f16), 0.1); | 7503 | try testArgs(f16, fmax(f16), 1e-1); |
| 2012 | try testArgs(f16, fmax(f16), 1.0); | 7504 | try testArgs(f16, fmax(f16), 1e0); |
| 2013 | try testArgs(f16, fmax(f16), 10.0); | 7505 | try testArgs(f16, fmax(f16), 1e1); |
| 2014 | try testArgs(f16, fmax(f16), fmax(f16)); | 7506 | try testArgs(f16, fmax(f16), fmax(f16)); |
| 2015 | try testArgs(f16, fmax(f16), inf(f16)); | 7507 | try testArgs(f16, fmax(f16), inf(f16)); |
| 2016 | try testArgs(f16, fmax(f16), nan(f16)); | 7508 | try testArgs(f16, fmax(f16), nan(f16)); |
| ... | @@ -2018,18 +7510,18 @@ fn binary(comptime op: anytype, comptime opts: struct { strict: bool = false }) | ... | @@ -2018,18 +7510,18 @@ fn binary(comptime op: anytype, comptime opts: struct { strict: bool = false }) |
| 2018 | try testArgs(f16, inf(f16), -nan(f16)); | 7510 | try testArgs(f16, inf(f16), -nan(f16)); |
| 2019 | try testArgs(f16, inf(f16), -inf(f16)); | 7511 | try testArgs(f16, inf(f16), -inf(f16)); |
| 2020 | try testArgs(f16, inf(f16), -fmax(f16)); | 7512 | try testArgs(f16, inf(f16), -fmax(f16)); |
| 2021 | try testArgs(f16, inf(f16), -10.0); | 7513 | try testArgs(f16, inf(f16), -1e1); |
| 2022 | try testArgs(f16, inf(f16), -1.0); | 7514 | try testArgs(f16, inf(f16), -1e0); |
| 2023 | try testArgs(f16, inf(f16), -0.1); | 7515 | try testArgs(f16, inf(f16), -1e-1); |
| 2024 | try testArgs(f16, inf(f16), -fmin(f16)); | 7516 | try testArgs(f16, inf(f16), -fmin(f16)); |
| 2025 | try testArgs(f16, inf(f16), -tmin(f16)); | 7517 | try testArgs(f16, inf(f16), -tmin(f16)); |
| 2026 | try testArgs(f16, inf(f16), -0.0); | 7518 | try testArgs(f16, inf(f16), -0.0); |
| 2027 | try testArgs(f16, inf(f16), 0.0); | 7519 | try testArgs(f16, inf(f16), 0.0); |
| 2028 | try testArgs(f16, inf(f16), tmin(f16)); | 7520 | try testArgs(f16, inf(f16), tmin(f16)); |
| 2029 | try testArgs(f16, inf(f16), fmin(f16)); | 7521 | try testArgs(f16, inf(f16), fmin(f16)); |
| 2030 | try testArgs(f16, inf(f16), 0.1); | 7522 | try testArgs(f16, inf(f16), 1e-1); |
| 2031 | try testArgs(f16, inf(f16), 1.0); | 7523 | try testArgs(f16, inf(f16), 1e0); |
| 2032 | try testArgs(f16, inf(f16), 10.0); | 7524 | try testArgs(f16, inf(f16), 1e1); |
| 2033 | try testArgs(f16, inf(f16), fmax(f16)); | 7525 | try testArgs(f16, inf(f16), fmax(f16)); |
| 2034 | try testArgs(f16, inf(f16), inf(f16)); | 7526 | try testArgs(f16, inf(f16), inf(f16)); |
| 2035 | try testArgs(f16, inf(f16), nan(f16)); | 7527 | try testArgs(f16, inf(f16), nan(f16)); |
| ... | @@ -2037,18 +7529,18 @@ fn binary(comptime op: anytype, comptime opts: struct { strict: bool = false }) | ... | @@ -2037,18 +7529,18 @@ fn binary(comptime op: anytype, comptime opts: struct { strict: bool = false }) |
| 2037 | try testArgs(f16, nan(f16), -nan(f16)); | 7529 | try testArgs(f16, nan(f16), -nan(f16)); |
| 2038 | try testArgs(f16, nan(f16), -inf(f16)); | 7530 | try testArgs(f16, nan(f16), -inf(f16)); |
| 2039 | try testArgs(f16, nan(f16), -fmax(f16)); | 7531 | try testArgs(f16, nan(f16), -fmax(f16)); |
| 2040 | try testArgs(f16, nan(f16), -10.0); | 7532 | try testArgs(f16, nan(f16), -1e1); |
| 2041 | try testArgs(f16, nan(f16), -1.0); | 7533 | try testArgs(f16, nan(f16), -1e0); |
| 2042 | try testArgs(f16, nan(f16), -0.1); | 7534 | try testArgs(f16, nan(f16), -1e-1); |
| 2043 | try testArgs(f16, nan(f16), -fmin(f16)); | 7535 | try testArgs(f16, nan(f16), -fmin(f16)); |
| 2044 | try testArgs(f16, nan(f16), -tmin(f16)); | 7536 | try testArgs(f16, nan(f16), -tmin(f16)); |
| 2045 | try testArgs(f16, nan(f16), -0.0); | 7537 | try testArgs(f16, nan(f16), -0.0); |
| 2046 | try testArgs(f16, nan(f16), 0.0); | 7538 | try testArgs(f16, nan(f16), 0.0); |
| 2047 | try testArgs(f16, nan(f16), tmin(f16)); | 7539 | try testArgs(f16, nan(f16), tmin(f16)); |
| 2048 | try testArgs(f16, nan(f16), fmin(f16)); | 7540 | try testArgs(f16, nan(f16), fmin(f16)); |
| 2049 | try testArgs(f16, nan(f16), 0.1); | 7541 | try testArgs(f16, nan(f16), 1e-1); |
| 2050 | try testArgs(f16, nan(f16), 1.0); | 7542 | try testArgs(f16, nan(f16), 1e0); |
| 2051 | try testArgs(f16, nan(f16), 10.0); | 7543 | try testArgs(f16, nan(f16), 1e1); |
| 2052 | try testArgs(f16, nan(f16), fmax(f16)); | 7544 | try testArgs(f16, nan(f16), fmax(f16)); |
| 2053 | try testArgs(f16, nan(f16), inf(f16)); | 7545 | try testArgs(f16, nan(f16), inf(f16)); |
| 2054 | try testArgs(f16, nan(f16), nan(f16)); | 7546 | try testArgs(f16, nan(f16), nan(f16)); |
| ... | @@ -2056,18 +7548,18 @@ fn binary(comptime op: anytype, comptime opts: struct { strict: bool = false }) | ... | @@ -2056,18 +7548,18 @@ fn binary(comptime op: anytype, comptime opts: struct { strict: bool = false }) |
| 2056 | try testArgs(f32, -nan(f32), -nan(f32)); | 7548 | try testArgs(f32, -nan(f32), -nan(f32)); |
| 2057 | try testArgs(f32, -nan(f32), -inf(f32)); | 7549 | try testArgs(f32, -nan(f32), -inf(f32)); |
| 2058 | try testArgs(f32, -nan(f32), -fmax(f32)); | 7550 | try testArgs(f32, -nan(f32), -fmax(f32)); |
| 2059 | try testArgs(f32, -nan(f32), -10.0); | 7551 | try testArgs(f32, -nan(f32), -1e1); |
| 2060 | try testArgs(f32, -nan(f32), -1.0); | 7552 | try testArgs(f32, -nan(f32), -1e0); |
| 2061 | try testArgs(f32, -nan(f32), -0.1); | 7553 | try testArgs(f32, -nan(f32), -1e-1); |
| 2062 | try testArgs(f32, -nan(f32), -fmin(f32)); | 7554 | try testArgs(f32, -nan(f32), -fmin(f32)); |
| 2063 | try testArgs(f32, -nan(f32), -tmin(f32)); | 7555 | try testArgs(f32, -nan(f32), -tmin(f32)); |
| 2064 | try testArgs(f32, -nan(f32), -0.0); | 7556 | try testArgs(f32, -nan(f32), -0.0); |
| 2065 | try testArgs(f32, -nan(f32), 0.0); | 7557 | try testArgs(f32, -nan(f32), 0.0); |
| 2066 | try testArgs(f32, -nan(f32), tmin(f32)); | 7558 | try testArgs(f32, -nan(f32), tmin(f32)); |
| 2067 | try testArgs(f32, -nan(f32), fmin(f32)); | 7559 | try testArgs(f32, -nan(f32), fmin(f32)); |
| 2068 | try testArgs(f32, -nan(f32), 0.1); | 7560 | try testArgs(f32, -nan(f32), 1e-1); |
| 2069 | try testArgs(f32, -nan(f32), 1.0); | 7561 | try testArgs(f32, -nan(f32), 1e0); |
| 2070 | try testArgs(f32, -nan(f32), 10.0); | 7562 | try testArgs(f32, -nan(f32), 1e1); |
| 2071 | try testArgs(f32, -nan(f32), fmax(f32)); | 7563 | try testArgs(f32, -nan(f32), fmax(f32)); |
| 2072 | try testArgs(f32, -nan(f32), inf(f32)); | 7564 | try testArgs(f32, -nan(f32), inf(f32)); |
| 2073 | try testArgs(f32, -nan(f32), nan(f32)); | 7565 | try testArgs(f32, -nan(f32), nan(f32)); |
| ... | @@ -2075,18 +7567,18 @@ fn binary(comptime op: anytype, comptime opts: struct { strict: bool = false }) | ... | @@ -2075,18 +7567,18 @@ fn binary(comptime op: anytype, comptime opts: struct { strict: bool = false }) |
| 2075 | try testArgs(f32, -inf(f32), -nan(f32)); | 7567 | try testArgs(f32, -inf(f32), -nan(f32)); |
| 2076 | try testArgs(f32, -inf(f32), -inf(f32)); | 7568 | try testArgs(f32, -inf(f32), -inf(f32)); |
| 2077 | try testArgs(f32, -inf(f32), -fmax(f32)); | 7569 | try testArgs(f32, -inf(f32), -fmax(f32)); |
| 2078 | try testArgs(f32, -inf(f32), -10.0); | 7570 | try testArgs(f32, -inf(f32), -1e1); |
| 2079 | try testArgs(f32, -inf(f32), -1.0); | 7571 | try testArgs(f32, -inf(f32), -1e0); |
| 2080 | try testArgs(f32, -inf(f32), -0.1); | 7572 | try testArgs(f32, -inf(f32), -1e-1); |
| 2081 | try testArgs(f32, -inf(f32), -fmin(f32)); | 7573 | try testArgs(f32, -inf(f32), -fmin(f32)); |
| 2082 | try testArgs(f32, -inf(f32), -tmin(f32)); | 7574 | try testArgs(f32, -inf(f32), -tmin(f32)); |
| 2083 | try testArgs(f32, -inf(f32), -0.0); | 7575 | try testArgs(f32, -inf(f32), -0.0); |
| 2084 | try testArgs(f32, -inf(f32), 0.0); | 7576 | try testArgs(f32, -inf(f32), 0.0); |
| 2085 | try testArgs(f32, -inf(f32), tmin(f32)); | 7577 | try testArgs(f32, -inf(f32), tmin(f32)); |
| 2086 | try testArgs(f32, -inf(f32), fmin(f32)); | 7578 | try testArgs(f32, -inf(f32), fmin(f32)); |
| 2087 | try testArgs(f32, -inf(f32), 0.1); | 7579 | try testArgs(f32, -inf(f32), 1e-1); |
| 2088 | try testArgs(f32, -inf(f32), 1.0); | 7580 | try testArgs(f32, -inf(f32), 1e0); |
| 2089 | try testArgs(f32, -inf(f32), 10.0); | 7581 | try testArgs(f32, -inf(f32), 1e1); |
| 2090 | try testArgs(f32, -inf(f32), fmax(f32)); | 7582 | try testArgs(f32, -inf(f32), fmax(f32)); |
| 2091 | try testArgs(f32, -inf(f32), inf(f32)); | 7583 | try testArgs(f32, -inf(f32), inf(f32)); |
| 2092 | try testArgs(f32, -inf(f32), nan(f32)); | 7584 | try testArgs(f32, -inf(f32), nan(f32)); |
| ... | @@ -2094,94 +7586,94 @@ fn binary(comptime op: anytype, comptime opts: struct { strict: bool = false }) | ... | @@ -2094,94 +7586,94 @@ fn binary(comptime op: anytype, comptime opts: struct { strict: bool = false }) |
| 2094 | try testArgs(f32, -fmax(f32), -nan(f32)); | 7586 | try testArgs(f32, -fmax(f32), -nan(f32)); |
| 2095 | try testArgs(f32, -fmax(f32), -inf(f32)); | 7587 | try testArgs(f32, -fmax(f32), -inf(f32)); |
| 2096 | try testArgs(f32, -fmax(f32), -fmax(f32)); | 7588 | try testArgs(f32, -fmax(f32), -fmax(f32)); |
| 2097 | try testArgs(f32, -fmax(f32), -10.0); | 7589 | try testArgs(f32, -fmax(f32), -1e1); |
| 2098 | try testArgs(f32, -fmax(f32), -1.0); | 7590 | try testArgs(f32, -fmax(f32), -1e0); |
| 2099 | try testArgs(f32, -fmax(f32), -0.1); | 7591 | try testArgs(f32, -fmax(f32), -1e-1); |
| 2100 | try testArgs(f32, -fmax(f32), -fmin(f32)); | 7592 | try testArgs(f32, -fmax(f32), -fmin(f32)); |
| 2101 | try testArgs(f32, -fmax(f32), -tmin(f32)); | 7593 | try testArgs(f32, -fmax(f32), -tmin(f32)); |
| 2102 | try testArgs(f32, -fmax(f32), -0.0); | 7594 | try testArgs(f32, -fmax(f32), -0.0); |
| 2103 | try testArgs(f32, -fmax(f32), 0.0); | 7595 | try testArgs(f32, -fmax(f32), 0.0); |
| 2104 | try testArgs(f32, -fmax(f32), tmin(f32)); | 7596 | try testArgs(f32, -fmax(f32), tmin(f32)); |
| 2105 | try testArgs(f32, -fmax(f32), fmin(f32)); | 7597 | try testArgs(f32, -fmax(f32), fmin(f32)); |
| 2106 | try testArgs(f32, -fmax(f32), 0.1); | 7598 | try testArgs(f32, -fmax(f32), 1e-1); |
| 2107 | try testArgs(f32, -fmax(f32), 1.0); | 7599 | try testArgs(f32, -fmax(f32), 1e0); |
| 2108 | try testArgs(f32, -fmax(f32), 10.0); | 7600 | try testArgs(f32, -fmax(f32), 1e1); |
| 2109 | try testArgs(f32, -fmax(f32), fmax(f32)); | 7601 | try testArgs(f32, -fmax(f32), fmax(f32)); |
| 2110 | try testArgs(f32, -fmax(f32), inf(f32)); | 7602 | try testArgs(f32, -fmax(f32), inf(f32)); |
| 2111 | try testArgs(f32, -fmax(f32), nan(f32)); | 7603 | try testArgs(f32, -fmax(f32), nan(f32)); |
| 2112 | 7604 | ||
| 2113 | try testArgs(f32, -10.0, -nan(f32)); | 7605 | try testArgs(f32, -1e1, -nan(f32)); |
| 2114 | try testArgs(f32, -10.0, -inf(f32)); | 7606 | try testArgs(f32, -1e1, -inf(f32)); |
| 2115 | try testArgs(f32, -10.0, -fmax(f32)); | 7607 | try testArgs(f32, -1e1, -fmax(f32)); |
| 2116 | try testArgs(f32, -10.0, -10.0); | 7608 | try testArgs(f32, -1e1, -1e1); |
| 2117 | try testArgs(f32, -10.0, -1.0); | 7609 | try testArgs(f32, -1e1, -1e0); |
| 2118 | try testArgs(f32, -10.0, -0.1); | 7610 | try testArgs(f32, -1e1, -1e-1); |
| 2119 | try testArgs(f32, -10.0, -fmin(f32)); | 7611 | try testArgs(f32, -1e1, -fmin(f32)); |
| 2120 | try testArgs(f32, -10.0, -tmin(f32)); | 7612 | try testArgs(f32, -1e1, -tmin(f32)); |
| 2121 | try testArgs(f32, -10.0, -0.0); | 7613 | try testArgs(f32, -1e1, -0.0); |
| 2122 | try testArgs(f32, -10.0, 0.0); | 7614 | try testArgs(f32, -1e1, 0.0); |
| 2123 | try testArgs(f32, -10.0, tmin(f32)); | 7615 | try testArgs(f32, -1e1, tmin(f32)); |
| 2124 | try testArgs(f32, -10.0, fmin(f32)); | 7616 | try testArgs(f32, -1e1, fmin(f32)); |
| 2125 | try testArgs(f32, -10.0, 0.1); | 7617 | try testArgs(f32, -1e1, 1e-1); |
| 2126 | try testArgs(f32, -10.0, 1.0); | 7618 | try testArgs(f32, -1e1, 1e0); |
| 2127 | try testArgs(f32, -10.0, 10.0); | 7619 | try testArgs(f32, -1e1, 1e1); |
| 2128 | try testArgs(f32, -10.0, fmax(f32)); | 7620 | try testArgs(f32, -1e1, fmax(f32)); |
| 2129 | try testArgs(f32, -10.0, inf(f32)); | 7621 | try testArgs(f32, -1e1, inf(f32)); |
| 2130 | try testArgs(f32, -10.0, nan(f32)); | 7622 | try testArgs(f32, -1e1, nan(f32)); |
| 2131 | 7623 | ||
| 2132 | try testArgs(f32, -1.0, -nan(f32)); | 7624 | try testArgs(f32, -1e0, -nan(f32)); |
| 2133 | try testArgs(f32, -1.0, -inf(f32)); | 7625 | try testArgs(f32, -1e0, -inf(f32)); |
| 2134 | try testArgs(f32, -1.0, -fmax(f32)); | 7626 | try testArgs(f32, -1e0, -fmax(f32)); |
| 2135 | try testArgs(f32, -1.0, -10.0); | 7627 | try testArgs(f32, -1e0, -1e1); |
| 2136 | try testArgs(f32, -1.0, -1.0); | 7628 | try testArgs(f32, -1e0, -1e0); |
| 2137 | try testArgs(f32, -1.0, -0.1); | 7629 | try testArgs(f32, -1e0, -1e-1); |
| 2138 | try testArgs(f32, -1.0, -fmin(f32)); | 7630 | try testArgs(f32, -1e0, -fmin(f32)); |
| 2139 | try testArgs(f32, -1.0, -tmin(f32)); | 7631 | try testArgs(f32, -1e0, -tmin(f32)); |
| 2140 | try testArgs(f32, -1.0, -0.0); | 7632 | try testArgs(f32, -1e0, -0.0); |
| 2141 | try testArgs(f32, -1.0, 0.0); | 7633 | try testArgs(f32, -1e0, 0.0); |
| 2142 | try testArgs(f32, -1.0, tmin(f32)); | 7634 | try testArgs(f32, -1e0, tmin(f32)); |
| 2143 | try testArgs(f32, -1.0, fmin(f32)); | 7635 | try testArgs(f32, -1e0, fmin(f32)); |
| 2144 | try testArgs(f32, -1.0, 0.1); | 7636 | try testArgs(f32, -1e0, 1e-1); |
| 2145 | try testArgs(f32, -1.0, 1.0); | 7637 | try testArgs(f32, -1e0, 1e0); |
| 2146 | try testArgs(f32, -1.0, 10.0); | 7638 | try testArgs(f32, -1e0, 1e1); |
| 2147 | try testArgs(f32, -1.0, fmax(f32)); | 7639 | try testArgs(f32, -1e0, fmax(f32)); |
| 2148 | try testArgs(f32, -1.0, inf(f32)); | 7640 | try testArgs(f32, -1e0, inf(f32)); |
| 2149 | try testArgs(f32, -1.0, nan(f32)); | 7641 | try testArgs(f32, -1e0, nan(f32)); |
| 2150 | 7642 | ||
| 2151 | try testArgs(f32, -0.1, -nan(f32)); | 7643 | try testArgs(f32, -1e-1, -nan(f32)); |
| 2152 | try testArgs(f32, -0.1, -inf(f32)); | 7644 | try testArgs(f32, -1e-1, -inf(f32)); |
| 2153 | try testArgs(f32, -0.1, -fmax(f32)); | 7645 | try testArgs(f32, -1e-1, -fmax(f32)); |
| 2154 | try testArgs(f32, -0.1, -10.0); | 7646 | try testArgs(f32, -1e-1, -1e1); |
| 2155 | try testArgs(f32, -0.1, -1.0); | 7647 | try testArgs(f32, -1e-1, -1e0); |
| 2156 | try testArgs(f32, -0.1, -0.1); | 7648 | try testArgs(f32, -1e-1, -1e-1); |
| 2157 | try testArgs(f32, -0.1, -fmin(f32)); | 7649 | try testArgs(f32, -1e-1, -fmin(f32)); |
| 2158 | try testArgs(f32, -0.1, -tmin(f32)); | 7650 | try testArgs(f32, -1e-1, -tmin(f32)); |
| 2159 | try testArgs(f32, -0.1, -0.0); | 7651 | try testArgs(f32, -1e-1, -0.0); |
| 2160 | try testArgs(f32, -0.1, 0.0); | 7652 | try testArgs(f32, -1e-1, 0.0); |
| 2161 | try testArgs(f32, -0.1, tmin(f32)); | 7653 | try testArgs(f32, -1e-1, tmin(f32)); |
| 2162 | try testArgs(f32, -0.1, fmin(f32)); | 7654 | try testArgs(f32, -1e-1, fmin(f32)); |
| 2163 | try testArgs(f32, -0.1, 0.1); | 7655 | try testArgs(f32, -1e-1, 1e-1); |
| 2164 | try testArgs(f32, -0.1, 1.0); | 7656 | try testArgs(f32, -1e-1, 1e0); |
| 2165 | try testArgs(f32, -0.1, 10.0); | 7657 | try testArgs(f32, -1e-1, 1e1); |
| 2166 | try testArgs(f32, -0.1, fmax(f32)); | 7658 | try testArgs(f32, -1e-1, fmax(f32)); |
| 2167 | try testArgs(f32, -0.1, inf(f32)); | 7659 | try testArgs(f32, -1e-1, inf(f32)); |
| 2168 | try testArgs(f32, -0.1, nan(f32)); | 7660 | try testArgs(f32, -1e-1, nan(f32)); |
| 2169 | 7661 | ||
| 2170 | try testArgs(f32, -fmin(f32), -nan(f32)); | 7662 | try testArgs(f32, -fmin(f32), -nan(f32)); |
| 2171 | try testArgs(f32, -fmin(f32), -inf(f32)); | 7663 | try testArgs(f32, -fmin(f32), -inf(f32)); |
| 2172 | try testArgs(f32, -fmin(f32), -fmax(f32)); | 7664 | try testArgs(f32, -fmin(f32), -fmax(f32)); |
| 2173 | try testArgs(f32, -fmin(f32), -10.0); | 7665 | try testArgs(f32, -fmin(f32), -1e1); |
| 2174 | try testArgs(f32, -fmin(f32), -1.0); | 7666 | try testArgs(f32, -fmin(f32), -1e0); |
| 2175 | try testArgs(f32, -fmin(f32), -0.1); | 7667 | try testArgs(f32, -fmin(f32), -1e-1); |
| 2176 | try testArgs(f32, -fmin(f32), -fmin(f32)); | 7668 | try testArgs(f32, -fmin(f32), -fmin(f32)); |
| 2177 | try testArgs(f32, -fmin(f32), -tmin(f32)); | 7669 | try testArgs(f32, -fmin(f32), -tmin(f32)); |
| 2178 | try testArgs(f32, -fmin(f32), -0.0); | 7670 | try testArgs(f32, -fmin(f32), -0.0); |
| 2179 | try testArgs(f32, -fmin(f32), 0.0); | 7671 | try testArgs(f32, -fmin(f32), 0.0); |
| 2180 | try testArgs(f32, -fmin(f32), tmin(f32)); | 7672 | try testArgs(f32, -fmin(f32), tmin(f32)); |
| 2181 | try testArgs(f32, -fmin(f32), fmin(f32)); | 7673 | try testArgs(f32, -fmin(f32), fmin(f32)); |
| 2182 | try testArgs(f32, -fmin(f32), 0.1); | 7674 | try testArgs(f32, -fmin(f32), 1e-1); |
| 2183 | try testArgs(f32, -fmin(f32), 1.0); | 7675 | try testArgs(f32, -fmin(f32), 1e0); |
| 2184 | try testArgs(f32, -fmin(f32), 10.0); | 7676 | try testArgs(f32, -fmin(f32), 1e1); |
| 2185 | try testArgs(f32, -fmin(f32), fmax(f32)); | 7677 | try testArgs(f32, -fmin(f32), fmax(f32)); |
| 2186 | try testArgs(f32, -fmin(f32), inf(f32)); | 7678 | try testArgs(f32, -fmin(f32), inf(f32)); |
| 2187 | try testArgs(f32, -fmin(f32), nan(f32)); | 7679 | try testArgs(f32, -fmin(f32), nan(f32)); |
| ... | @@ -2189,18 +7681,18 @@ fn binary(comptime op: anytype, comptime opts: struct { strict: bool = false }) | ... | @@ -2189,18 +7681,18 @@ fn binary(comptime op: anytype, comptime opts: struct { strict: bool = false }) |
| 2189 | try testArgs(f32, -tmin(f32), -nan(f32)); | 7681 | try testArgs(f32, -tmin(f32), -nan(f32)); |
| 2190 | try testArgs(f32, -tmin(f32), -inf(f32)); | 7682 | try testArgs(f32, -tmin(f32), -inf(f32)); |
| 2191 | try testArgs(f32, -tmin(f32), -fmax(f32)); | 7683 | try testArgs(f32, -tmin(f32), -fmax(f32)); |
| 2192 | try testArgs(f32, -tmin(f32), -10.0); | 7684 | try testArgs(f32, -tmin(f32), -1e1); |
| 2193 | try testArgs(f32, -tmin(f32), -1.0); | 7685 | try testArgs(f32, -tmin(f32), -1e0); |
| 2194 | try testArgs(f32, -tmin(f32), -0.1); | 7686 | try testArgs(f32, -tmin(f32), -1e-1); |
| 2195 | try testArgs(f32, -tmin(f32), -fmin(f32)); | 7687 | try testArgs(f32, -tmin(f32), -fmin(f32)); |
| 2196 | try testArgs(f32, -tmin(f32), -tmin(f32)); | 7688 | try testArgs(f32, -tmin(f32), -tmin(f32)); |
| 2197 | try testArgs(f32, -tmin(f32), -0.0); | 7689 | try testArgs(f32, -tmin(f32), -0.0); |
| 2198 | try testArgs(f32, -tmin(f32), 0.0); | 7690 | try testArgs(f32, -tmin(f32), 0.0); |
| 2199 | try testArgs(f32, -tmin(f32), tmin(f32)); | 7691 | try testArgs(f32, -tmin(f32), tmin(f32)); |
| 2200 | try testArgs(f32, -tmin(f32), fmin(f32)); | 7692 | try testArgs(f32, -tmin(f32), fmin(f32)); |
| 2201 | try testArgs(f32, -tmin(f32), 0.1); | 7693 | try testArgs(f32, -tmin(f32), 1e-1); |
| 2202 | try testArgs(f32, -tmin(f32), 1.0); | 7694 | try testArgs(f32, -tmin(f32), 1e0); |
| 2203 | try testArgs(f32, -tmin(f32), 10.0); | 7695 | try testArgs(f32, -tmin(f32), 1e1); |
| 2204 | try testArgs(f32, -tmin(f32), fmax(f32)); | 7696 | try testArgs(f32, -tmin(f32), fmax(f32)); |
| 2205 | try testArgs(f32, -tmin(f32), inf(f32)); | 7697 | try testArgs(f32, -tmin(f32), inf(f32)); |
| 2206 | try testArgs(f32, -tmin(f32), nan(f32)); | 7698 | try testArgs(f32, -tmin(f32), nan(f32)); |
| ... | @@ -2208,18 +7700,18 @@ fn binary(comptime op: anytype, comptime opts: struct { strict: bool = false }) | ... | @@ -2208,18 +7700,18 @@ fn binary(comptime op: anytype, comptime opts: struct { strict: bool = false }) |
| 2208 | try testArgs(f32, -0.0, -nan(f32)); | 7700 | try testArgs(f32, -0.0, -nan(f32)); |
| 2209 | try testArgs(f32, -0.0, -inf(f32)); | 7701 | try testArgs(f32, -0.0, -inf(f32)); |
| 2210 | try testArgs(f32, -0.0, -fmax(f32)); | 7702 | try testArgs(f32, -0.0, -fmax(f32)); |
| 2211 | try testArgs(f32, -0.0, -10.0); | 7703 | try testArgs(f32, -0.0, -1e1); |
| 2212 | try testArgs(f32, -0.0, -1.0); | 7704 | try testArgs(f32, -0.0, -1e0); |
| 2213 | try testArgs(f32, -0.0, -0.1); | 7705 | try testArgs(f32, -0.0, -1e-1); |
| 2214 | try testArgs(f32, -0.0, -fmin(f32)); | 7706 | try testArgs(f32, -0.0, -fmin(f32)); |
| 2215 | try testArgs(f32, -0.0, -tmin(f32)); | 7707 | try testArgs(f32, -0.0, -tmin(f32)); |
| 2216 | try testArgs(f32, -0.0, -0.0); | 7708 | try testArgs(f32, -0.0, -0.0); |
| 2217 | try testArgs(f32, -0.0, 0.0); | 7709 | try testArgs(f32, -0.0, 0.0); |
| 2218 | try testArgs(f32, -0.0, tmin(f32)); | 7710 | try testArgs(f32, -0.0, tmin(f32)); |
| 2219 | try testArgs(f32, -0.0, fmin(f32)); | 7711 | try testArgs(f32, -0.0, fmin(f32)); |
| 2220 | try testArgs(f32, -0.0, 0.1); | 7712 | try testArgs(f32, -0.0, 1e-1); |
| 2221 | try testArgs(f32, -0.0, 1.0); | 7713 | try testArgs(f32, -0.0, 1e0); |
| 2222 | try testArgs(f32, -0.0, 10.0); | 7714 | try testArgs(f32, -0.0, 1e1); |
| 2223 | try testArgs(f32, -0.0, fmax(f32)); | 7715 | try testArgs(f32, -0.0, fmax(f32)); |
| 2224 | try testArgs(f32, -0.0, inf(f32)); | 7716 | try testArgs(f32, -0.0, inf(f32)); |
| 2225 | try testArgs(f32, -0.0, nan(f32)); | 7717 | try testArgs(f32, -0.0, nan(f32)); |
| ... | @@ -2227,18 +7719,18 @@ fn binary(comptime op: anytype, comptime opts: struct { strict: bool = false }) | ... | @@ -2227,18 +7719,18 @@ fn binary(comptime op: anytype, comptime opts: struct { strict: bool = false }) |
| 2227 | try testArgs(f32, 0.0, -nan(f32)); | 7719 | try testArgs(f32, 0.0, -nan(f32)); |
| 2228 | try testArgs(f32, 0.0, -inf(f32)); | 7720 | try testArgs(f32, 0.0, -inf(f32)); |
| 2229 | try testArgs(f32, 0.0, -fmax(f32)); | 7721 | try testArgs(f32, 0.0, -fmax(f32)); |
| 2230 | try testArgs(f32, 0.0, -10.0); | 7722 | try testArgs(f32, 0.0, -1e1); |
| 2231 | try testArgs(f32, 0.0, -1.0); | 7723 | try testArgs(f32, 0.0, -1e0); |
| 2232 | try testArgs(f32, 0.0, -0.1); | 7724 | try testArgs(f32, 0.0, -1e-1); |
| 2233 | try testArgs(f32, 0.0, -fmin(f32)); | 7725 | try testArgs(f32, 0.0, -fmin(f32)); |
| 2234 | try testArgs(f32, 0.0, -tmin(f32)); | 7726 | try testArgs(f32, 0.0, -tmin(f32)); |
| 2235 | try testArgs(f32, 0.0, -0.0); | 7727 | try testArgs(f32, 0.0, -0.0); |
| 2236 | try testArgs(f32, 0.0, 0.0); | 7728 | try testArgs(f32, 0.0, 0.0); |
| 2237 | try testArgs(f32, 0.0, tmin(f32)); | 7729 | try testArgs(f32, 0.0, tmin(f32)); |
| 2238 | try testArgs(f32, 0.0, fmin(f32)); | 7730 | try testArgs(f32, 0.0, fmin(f32)); |
| 2239 | try testArgs(f32, 0.0, 0.1); | 7731 | try testArgs(f32, 0.0, 1e-1); |
| 2240 | try testArgs(f32, 0.0, 1.0); | 7732 | try testArgs(f32, 0.0, 1e0); |
| 2241 | try testArgs(f32, 0.0, 10.0); | 7733 | try testArgs(f32, 0.0, 1e1); |
| 2242 | try testArgs(f32, 0.0, fmax(f32)); | 7734 | try testArgs(f32, 0.0, fmax(f32)); |
| 2243 | try testArgs(f32, 0.0, inf(f32)); | 7735 | try testArgs(f32, 0.0, inf(f32)); |
| 2244 | try testArgs(f32, 0.0, nan(f32)); | 7736 | try testArgs(f32, 0.0, nan(f32)); |
| ... | @@ -2246,18 +7738,18 @@ fn binary(comptime op: anytype, comptime opts: struct { strict: bool = false }) | ... | @@ -2246,18 +7738,18 @@ fn binary(comptime op: anytype, comptime opts: struct { strict: bool = false }) |
| 2246 | try testArgs(f32, tmin(f32), -nan(f32)); | 7738 | try testArgs(f32, tmin(f32), -nan(f32)); |
| 2247 | try testArgs(f32, tmin(f32), -inf(f32)); | 7739 | try testArgs(f32, tmin(f32), -inf(f32)); |
| 2248 | try testArgs(f32, tmin(f32), -fmax(f32)); | 7740 | try testArgs(f32, tmin(f32), -fmax(f32)); |
| 2249 | try testArgs(f32, tmin(f32), -10.0); | 7741 | try testArgs(f32, tmin(f32), -1e1); |
| 2250 | try testArgs(f32, tmin(f32), -1.0); | 7742 | try testArgs(f32, tmin(f32), -1e0); |
| 2251 | try testArgs(f32, tmin(f32), -0.1); | 7743 | try testArgs(f32, tmin(f32), -1e-1); |
| 2252 | try testArgs(f32, tmin(f32), -fmin(f32)); | 7744 | try testArgs(f32, tmin(f32), -fmin(f32)); |
| 2253 | try testArgs(f32, tmin(f32), -tmin(f32)); | 7745 | try testArgs(f32, tmin(f32), -tmin(f32)); |
| 2254 | try testArgs(f32, tmin(f32), -0.0); | 7746 | try testArgs(f32, tmin(f32), -0.0); |
| 2255 | try testArgs(f32, tmin(f32), 0.0); | 7747 | try testArgs(f32, tmin(f32), 0.0); |
| 2256 | try testArgs(f32, tmin(f32), tmin(f32)); | 7748 | try testArgs(f32, tmin(f32), tmin(f32)); |
| 2257 | try testArgs(f32, tmin(f32), fmin(f32)); | 7749 | try testArgs(f32, tmin(f32), fmin(f32)); |
| 2258 | try testArgs(f32, tmin(f32), 0.1); | 7750 | try testArgs(f32, tmin(f32), 1e-1); |
| 2259 | try testArgs(f32, tmin(f32), 1.0); | 7751 | try testArgs(f32, tmin(f32), 1e0); |
| 2260 | try testArgs(f32, tmin(f32), 10.0); | 7752 | try testArgs(f32, tmin(f32), 1e1); |
| 2261 | try testArgs(f32, tmin(f32), fmax(f32)); | 7753 | try testArgs(f32, tmin(f32), fmax(f32)); |
| 2262 | try testArgs(f32, tmin(f32), inf(f32)); | 7754 | try testArgs(f32, tmin(f32), inf(f32)); |
| 2263 | try testArgs(f32, tmin(f32), nan(f32)); | 7755 | try testArgs(f32, tmin(f32), nan(f32)); |
| ... | @@ -2265,94 +7757,94 @@ fn binary(comptime op: anytype, comptime opts: struct { strict: bool = false }) | ... | @@ -2265,94 +7757,94 @@ fn binary(comptime op: anytype, comptime opts: struct { strict: bool = false }) |
| 2265 | try testArgs(f32, fmin(f32), -nan(f32)); | 7757 | try testArgs(f32, fmin(f32), -nan(f32)); |
| 2266 | try testArgs(f32, fmin(f32), -inf(f32)); | 7758 | try testArgs(f32, fmin(f32), -inf(f32)); |
| 2267 | try testArgs(f32, fmin(f32), -fmax(f32)); | 7759 | try testArgs(f32, fmin(f32), -fmax(f32)); |
| 2268 | try testArgs(f32, fmin(f32), -10.0); | 7760 | try testArgs(f32, fmin(f32), -1e1); |
| 2269 | try testArgs(f32, fmin(f32), -1.0); | 7761 | try testArgs(f32, fmin(f32), -1e0); |
| 2270 | try testArgs(f32, fmin(f32), -0.1); | 7762 | try testArgs(f32, fmin(f32), -1e-1); |
| 2271 | try testArgs(f32, fmin(f32), -fmin(f32)); | 7763 | try testArgs(f32, fmin(f32), -fmin(f32)); |
| 2272 | try testArgs(f32, fmin(f32), -tmin(f32)); | 7764 | try testArgs(f32, fmin(f32), -tmin(f32)); |
| 2273 | try testArgs(f32, fmin(f32), -0.0); | 7765 | try testArgs(f32, fmin(f32), -0.0); |
| 2274 | try testArgs(f32, fmin(f32), 0.0); | 7766 | try testArgs(f32, fmin(f32), 0.0); |
| 2275 | try testArgs(f32, fmin(f32), tmin(f32)); | 7767 | try testArgs(f32, fmin(f32), tmin(f32)); |
| 2276 | try testArgs(f32, fmin(f32), fmin(f32)); | 7768 | try testArgs(f32, fmin(f32), fmin(f32)); |
| 2277 | try testArgs(f32, fmin(f32), 0.1); | 7769 | try testArgs(f32, fmin(f32), 1e-1); |
| 2278 | try testArgs(f32, fmin(f32), 1.0); | 7770 | try testArgs(f32, fmin(f32), 1e0); |
| 2279 | try testArgs(f32, fmin(f32), 10.0); | 7771 | try testArgs(f32, fmin(f32), 1e1); |
| 2280 | try testArgs(f32, fmin(f32), fmax(f32)); | 7772 | try testArgs(f32, fmin(f32), fmax(f32)); |
| 2281 | try testArgs(f32, fmin(f32), inf(f32)); | 7773 | try testArgs(f32, fmin(f32), inf(f32)); |
| 2282 | try testArgs(f32, fmin(f32), nan(f32)); | 7774 | try testArgs(f32, fmin(f32), nan(f32)); |
| 2283 | 7775 | ||
| 2284 | try testArgs(f32, 0.1, -nan(f32)); | 7776 | try testArgs(f32, 1e-1, -nan(f32)); |
| 2285 | try testArgs(f32, 0.1, -inf(f32)); | 7777 | try testArgs(f32, 1e-1, -inf(f32)); |
| 2286 | try testArgs(f32, 0.1, -fmax(f32)); | 7778 | try testArgs(f32, 1e-1, -fmax(f32)); |
| 2287 | try testArgs(f32, 0.1, -10.0); | 7779 | try testArgs(f32, 1e-1, -1e1); |
| 2288 | try testArgs(f32, 0.1, -1.0); | 7780 | try testArgs(f32, 1e-1, -1e0); |
| 2289 | try testArgs(f32, 0.1, -0.1); | 7781 | try testArgs(f32, 1e-1, -1e-1); |
| 2290 | try testArgs(f32, 0.1, -fmin(f32)); | 7782 | try testArgs(f32, 1e-1, -fmin(f32)); |
| 2291 | try testArgs(f32, 0.1, -tmin(f32)); | 7783 | try testArgs(f32, 1e-1, -tmin(f32)); |
| 2292 | try testArgs(f32, 0.1, -0.0); | 7784 | try testArgs(f32, 1e-1, -0.0); |
| 2293 | try testArgs(f32, 0.1, 0.0); | 7785 | try testArgs(f32, 1e-1, 0.0); |
| 2294 | try testArgs(f32, 0.1, tmin(f32)); | 7786 | try testArgs(f32, 1e-1, tmin(f32)); |
| 2295 | try testArgs(f32, 0.1, fmin(f32)); | 7787 | try testArgs(f32, 1e-1, fmin(f32)); |
| 2296 | try testArgs(f32, 0.1, 0.1); | 7788 | try testArgs(f32, 1e-1, 1e-1); |
| 2297 | try testArgs(f32, 0.1, 1.0); | 7789 | try testArgs(f32, 1e-1, 1e0); |
| 2298 | try testArgs(f32, 0.1, 10.0); | 7790 | try testArgs(f32, 1e-1, 1e1); |
| 2299 | try testArgs(f32, 0.1, fmax(f32)); | 7791 | try testArgs(f32, 1e-1, fmax(f32)); |
| 2300 | try testArgs(f32, 0.1, inf(f32)); | 7792 | try testArgs(f32, 1e-1, inf(f32)); |
| 2301 | try testArgs(f32, 0.1, nan(f32)); | 7793 | try testArgs(f32, 1e-1, nan(f32)); |
| 2302 | 7794 | ||
| 2303 | try testArgs(f32, 1.0, -nan(f32)); | 7795 | try testArgs(f32, 1e0, -nan(f32)); |
| 2304 | try testArgs(f32, 1.0, -inf(f32)); | 7796 | try testArgs(f32, 1e0, -inf(f32)); |
| 2305 | try testArgs(f32, 1.0, -fmax(f32)); | 7797 | try testArgs(f32, 1e0, -fmax(f32)); |
| 2306 | try testArgs(f32, 1.0, -10.0); | 7798 | try testArgs(f32, 1e0, -1e1); |
| 2307 | try testArgs(f32, 1.0, -1.0); | 7799 | try testArgs(f32, 1e0, -1e0); |
| 2308 | try testArgs(f32, 1.0, -0.1); | 7800 | try testArgs(f32, 1e0, -1e-1); |
| 2309 | try testArgs(f32, 1.0, -fmin(f32)); | 7801 | try testArgs(f32, 1e0, -fmin(f32)); |
| 2310 | try testArgs(f32, 1.0, -tmin(f32)); | 7802 | try testArgs(f32, 1e0, -tmin(f32)); |
| 2311 | try testArgs(f32, 1.0, -0.0); | 7803 | try testArgs(f32, 1e0, -0.0); |
| 2312 | try testArgs(f32, 1.0, 0.0); | 7804 | try testArgs(f32, 1e0, 0.0); |
| 2313 | try testArgs(f32, 1.0, tmin(f32)); | 7805 | try testArgs(f32, 1e0, tmin(f32)); |
| 2314 | try testArgs(f32, 1.0, fmin(f32)); | 7806 | try testArgs(f32, 1e0, fmin(f32)); |
| 2315 | try testArgs(f32, 1.0, 0.1); | 7807 | try testArgs(f32, 1e0, 1e-1); |
| 2316 | try testArgs(f32, 1.0, 1.0); | 7808 | try testArgs(f32, 1e0, 1e0); |
| 2317 | try testArgs(f32, 1.0, 10.0); | 7809 | try testArgs(f32, 1e0, 1e1); |
| 2318 | try testArgs(f32, 1.0, fmax(f32)); | 7810 | try testArgs(f32, 1e0, fmax(f32)); |
| 2319 | try testArgs(f32, 1.0, inf(f32)); | 7811 | try testArgs(f32, 1e0, inf(f32)); |
| 2320 | try testArgs(f32, 1.0, nan(f32)); | 7812 | try testArgs(f32, 1e0, nan(f32)); |
| 2321 | 7813 | ||
| 2322 | try testArgs(f32, 10.0, -nan(f32)); | 7814 | try testArgs(f32, 1e1, -nan(f32)); |
| 2323 | try testArgs(f32, 10.0, -inf(f32)); | 7815 | try testArgs(f32, 1e1, -inf(f32)); |
| 2324 | try testArgs(f32, 10.0, -fmax(f32)); | 7816 | try testArgs(f32, 1e1, -fmax(f32)); |
| 2325 | try testArgs(f32, 10.0, -10.0); | 7817 | try testArgs(f32, 1e1, -1e1); |
| 2326 | try testArgs(f32, 10.0, -1.0); | 7818 | try testArgs(f32, 1e1, -1e0); |
| 2327 | try testArgs(f32, 10.0, -0.1); | 7819 | try testArgs(f32, 1e1, -1e-1); |
| 2328 | try testArgs(f32, 10.0, -fmin(f32)); | 7820 | try testArgs(f32, 1e1, -fmin(f32)); |
| 2329 | try testArgs(f32, 10.0, -tmin(f32)); | 7821 | try testArgs(f32, 1e1, -tmin(f32)); |
| 2330 | try testArgs(f32, 10.0, -0.0); | 7822 | try testArgs(f32, 1e1, -0.0); |
| 2331 | try testArgs(f32, 10.0, 0.0); | 7823 | try testArgs(f32, 1e1, 0.0); |
| 2332 | try testArgs(f32, 10.0, tmin(f32)); | 7824 | try testArgs(f32, 1e1, tmin(f32)); |
| 2333 | try testArgs(f32, 10.0, fmin(f32)); | 7825 | try testArgs(f32, 1e1, fmin(f32)); |
| 2334 | try testArgs(f32, 10.0, 0.1); | 7826 | try testArgs(f32, 1e1, 1e-1); |
| 2335 | try testArgs(f32, 10.0, 1.0); | 7827 | try testArgs(f32, 1e1, 1e0); |
| 2336 | try testArgs(f32, 10.0, 10.0); | 7828 | try testArgs(f32, 1e1, 1e1); |
| 2337 | try testArgs(f32, 10.0, fmax(f32)); | 7829 | try testArgs(f32, 1e1, fmax(f32)); |
| 2338 | try testArgs(f32, 10.0, inf(f32)); | 7830 | try testArgs(f32, 1e1, inf(f32)); |
| 2339 | try testArgs(f32, 10.0, nan(f32)); | 7831 | try testArgs(f32, 1e1, nan(f32)); |
| 2340 | 7832 | ||
| 2341 | try testArgs(f32, fmax(f32), -nan(f32)); | 7833 | try testArgs(f32, fmax(f32), -nan(f32)); |
| 2342 | try testArgs(f32, fmax(f32), -inf(f32)); | 7834 | try testArgs(f32, fmax(f32), -inf(f32)); |
| 2343 | try testArgs(f32, fmax(f32), -fmax(f32)); | 7835 | try testArgs(f32, fmax(f32), -fmax(f32)); |
| 2344 | try testArgs(f32, fmax(f32), -10.0); | 7836 | try testArgs(f32, fmax(f32), -1e1); |
| 2345 | try testArgs(f32, fmax(f32), -1.0); | 7837 | try testArgs(f32, fmax(f32), -1e0); |
| 2346 | try testArgs(f32, fmax(f32), -0.1); | 7838 | try testArgs(f32, fmax(f32), -1e-1); |
| 2347 | try testArgs(f32, fmax(f32), -fmin(f32)); | 7839 | try testArgs(f32, fmax(f32), -fmin(f32)); |
| 2348 | try testArgs(f32, fmax(f32), -tmin(f32)); | 7840 | try testArgs(f32, fmax(f32), -tmin(f32)); |
| 2349 | try testArgs(f32, fmax(f32), -0.0); | 7841 | try testArgs(f32, fmax(f32), -0.0); |
| 2350 | try testArgs(f32, fmax(f32), 0.0); | 7842 | try testArgs(f32, fmax(f32), 0.0); |
| 2351 | try testArgs(f32, fmax(f32), tmin(f32)); | 7843 | try testArgs(f32, fmax(f32), tmin(f32)); |
| 2352 | try testArgs(f32, fmax(f32), fmin(f32)); | 7844 | try testArgs(f32, fmax(f32), fmin(f32)); |
| 2353 | try testArgs(f32, fmax(f32), 0.1); | 7845 | try testArgs(f32, fmax(f32), 1e-1); |
| 2354 | try testArgs(f32, fmax(f32), 1.0); | 7846 | try testArgs(f32, fmax(f32), 1e0); |
| 2355 | try testArgs(f32, fmax(f32), 10.0); | 7847 | try testArgs(f32, fmax(f32), 1e1); |
| 2356 | try testArgs(f32, fmax(f32), fmax(f32)); | 7848 | try testArgs(f32, fmax(f32), fmax(f32)); |
| 2357 | try testArgs(f32, fmax(f32), inf(f32)); | 7849 | try testArgs(f32, fmax(f32), inf(f32)); |
| 2358 | try testArgs(f32, fmax(f32), nan(f32)); | 7850 | try testArgs(f32, fmax(f32), nan(f32)); |
| ... | @@ -2360,18 +7852,18 @@ fn binary(comptime op: anytype, comptime opts: struct { strict: bool = false }) | ... | @@ -2360,18 +7852,18 @@ fn binary(comptime op: anytype, comptime opts: struct { strict: bool = false }) |
| 2360 | try testArgs(f32, inf(f32), -nan(f32)); | 7852 | try testArgs(f32, inf(f32), -nan(f32)); |
| 2361 | try testArgs(f32, inf(f32), -inf(f32)); | 7853 | try testArgs(f32, inf(f32), -inf(f32)); |
| 2362 | try testArgs(f32, inf(f32), -fmax(f32)); | 7854 | try testArgs(f32, inf(f32), -fmax(f32)); |
| 2363 | try testArgs(f32, inf(f32), -10.0); | 7855 | try testArgs(f32, inf(f32), -1e1); |
| 2364 | try testArgs(f32, inf(f32), -1.0); | 7856 | try testArgs(f32, inf(f32), -1e0); |
| 2365 | try testArgs(f32, inf(f32), -0.1); | 7857 | try testArgs(f32, inf(f32), -1e-1); |
| 2366 | try testArgs(f32, inf(f32), -fmin(f32)); | 7858 | try testArgs(f32, inf(f32), -fmin(f32)); |
| 2367 | try testArgs(f32, inf(f32), -tmin(f32)); | 7859 | try testArgs(f32, inf(f32), -tmin(f32)); |
| 2368 | try testArgs(f32, inf(f32), -0.0); | 7860 | try testArgs(f32, inf(f32), -0.0); |
| 2369 | try testArgs(f32, inf(f32), 0.0); | 7861 | try testArgs(f32, inf(f32), 0.0); |
| 2370 | try testArgs(f32, inf(f32), tmin(f32)); | 7862 | try testArgs(f32, inf(f32), tmin(f32)); |
| 2371 | try testArgs(f32, inf(f32), fmin(f32)); | 7863 | try testArgs(f32, inf(f32), fmin(f32)); |
| 2372 | try testArgs(f32, inf(f32), 0.1); | 7864 | try testArgs(f32, inf(f32), 1e-1); |
| 2373 | try testArgs(f32, inf(f32), 1.0); | 7865 | try testArgs(f32, inf(f32), 1e0); |
| 2374 | try testArgs(f32, inf(f32), 10.0); | 7866 | try testArgs(f32, inf(f32), 1e1); |
| 2375 | try testArgs(f32, inf(f32), fmax(f32)); | 7867 | try testArgs(f32, inf(f32), fmax(f32)); |
| 2376 | try testArgs(f32, inf(f32), inf(f32)); | 7868 | try testArgs(f32, inf(f32), inf(f32)); |
| 2377 | try testArgs(f32, inf(f32), nan(f32)); | 7869 | try testArgs(f32, inf(f32), nan(f32)); |
| ... | @@ -2379,18 +7871,18 @@ fn binary(comptime op: anytype, comptime opts: struct { strict: bool = false }) | ... | @@ -2379,18 +7871,18 @@ fn binary(comptime op: anytype, comptime opts: struct { strict: bool = false }) |
| 2379 | try testArgs(f32, nan(f32), -nan(f32)); | 7871 | try testArgs(f32, nan(f32), -nan(f32)); |
| 2380 | try testArgs(f32, nan(f32), -inf(f32)); | 7872 | try testArgs(f32, nan(f32), -inf(f32)); |
| 2381 | try testArgs(f32, nan(f32), -fmax(f32)); | 7873 | try testArgs(f32, nan(f32), -fmax(f32)); |
| 2382 | try testArgs(f32, nan(f32), -10.0); | 7874 | try testArgs(f32, nan(f32), -1e1); |
| 2383 | try testArgs(f32, nan(f32), -1.0); | 7875 | try testArgs(f32, nan(f32), -1e0); |
| 2384 | try testArgs(f32, nan(f32), -0.1); | 7876 | try testArgs(f32, nan(f32), -1e-1); |
| 2385 | try testArgs(f32, nan(f32), -fmin(f32)); | 7877 | try testArgs(f32, nan(f32), -fmin(f32)); |
| 2386 | try testArgs(f32, nan(f32), -tmin(f32)); | 7878 | try testArgs(f32, nan(f32), -tmin(f32)); |
| 2387 | try testArgs(f32, nan(f32), -0.0); | 7879 | try testArgs(f32, nan(f32), -0.0); |
| 2388 | try testArgs(f32, nan(f32), 0.0); | 7880 | try testArgs(f32, nan(f32), 0.0); |
| 2389 | try testArgs(f32, nan(f32), tmin(f32)); | 7881 | try testArgs(f32, nan(f32), tmin(f32)); |
| 2390 | try testArgs(f32, nan(f32), fmin(f32)); | 7882 | try testArgs(f32, nan(f32), fmin(f32)); |
| 2391 | try testArgs(f32, nan(f32), 0.1); | 7883 | try testArgs(f32, nan(f32), 1e-1); |
| 2392 | try testArgs(f32, nan(f32), 1.0); | 7884 | try testArgs(f32, nan(f32), 1e0); |
| 2393 | try testArgs(f32, nan(f32), 10.0); | 7885 | try testArgs(f32, nan(f32), 1e1); |
| 2394 | try testArgs(f32, nan(f32), fmax(f32)); | 7886 | try testArgs(f32, nan(f32), fmax(f32)); |
| 2395 | try testArgs(f32, nan(f32), inf(f32)); | 7887 | try testArgs(f32, nan(f32), inf(f32)); |
| 2396 | try testArgs(f32, nan(f32), nan(f32)); | 7888 | try testArgs(f32, nan(f32), nan(f32)); |
| ... | @@ -2398,18 +7890,18 @@ fn binary(comptime op: anytype, comptime opts: struct { strict: bool = false }) | ... | @@ -2398,18 +7890,18 @@ fn binary(comptime op: anytype, comptime opts: struct { strict: bool = false }) |
| 2398 | try testArgs(f64, -nan(f64), -nan(f64)); | 7890 | try testArgs(f64, -nan(f64), -nan(f64)); |
| 2399 | try testArgs(f64, -nan(f64), -inf(f64)); | 7891 | try testArgs(f64, -nan(f64), -inf(f64)); |
| 2400 | try testArgs(f64, -nan(f64), -fmax(f64)); | 7892 | try testArgs(f64, -nan(f64), -fmax(f64)); |
| 2401 | try testArgs(f64, -nan(f64), -10.0); | 7893 | try testArgs(f64, -nan(f64), -1e1); |
| 2402 | try testArgs(f64, -nan(f64), -1.0); | 7894 | try testArgs(f64, -nan(f64), -1e0); |
| 2403 | try testArgs(f64, -nan(f64), -0.1); | 7895 | try testArgs(f64, -nan(f64), -1e-1); |
| 2404 | try testArgs(f64, -nan(f64), -fmin(f64)); | 7896 | try testArgs(f64, -nan(f64), -fmin(f64)); |
| 2405 | try testArgs(f64, -nan(f64), -tmin(f64)); | 7897 | try testArgs(f64, -nan(f64), -tmin(f64)); |
| 2406 | try testArgs(f64, -nan(f64), -0.0); | 7898 | try testArgs(f64, -nan(f64), -0.0); |
| 2407 | try testArgs(f64, -nan(f64), 0.0); | 7899 | try testArgs(f64, -nan(f64), 0.0); |
| 2408 | try testArgs(f64, -nan(f64), tmin(f64)); | 7900 | try testArgs(f64, -nan(f64), tmin(f64)); |
| 2409 | try testArgs(f64, -nan(f64), fmin(f64)); | 7901 | try testArgs(f64, -nan(f64), fmin(f64)); |
| 2410 | try testArgs(f64, -nan(f64), 0.1); | 7902 | try testArgs(f64, -nan(f64), 1e-1); |
| 2411 | try testArgs(f64, -nan(f64), 1.0); | 7903 | try testArgs(f64, -nan(f64), 1e0); |
| 2412 | try testArgs(f64, -nan(f64), 10.0); | 7904 | try testArgs(f64, -nan(f64), 1e1); |
| 2413 | try testArgs(f64, -nan(f64), fmax(f64)); | 7905 | try testArgs(f64, -nan(f64), fmax(f64)); |
| 2414 | try testArgs(f64, -nan(f64), inf(f64)); | 7906 | try testArgs(f64, -nan(f64), inf(f64)); |
| 2415 | try testArgs(f64, -nan(f64), nan(f64)); | 7907 | try testArgs(f64, -nan(f64), nan(f64)); |
| ... | @@ -2417,18 +7909,18 @@ fn binary(comptime op: anytype, comptime opts: struct { strict: bool = false }) | ... | @@ -2417,18 +7909,18 @@ fn binary(comptime op: anytype, comptime opts: struct { strict: bool = false }) |
| 2417 | try testArgs(f64, -inf(f64), -nan(f64)); | 7909 | try testArgs(f64, -inf(f64), -nan(f64)); |
| 2418 | try testArgs(f64, -inf(f64), -inf(f64)); | 7910 | try testArgs(f64, -inf(f64), -inf(f64)); |
| 2419 | try testArgs(f64, -inf(f64), -fmax(f64)); | 7911 | try testArgs(f64, -inf(f64), -fmax(f64)); |
| 2420 | try testArgs(f64, -inf(f64), -10.0); | 7912 | try testArgs(f64, -inf(f64), -1e1); |
| 2421 | try testArgs(f64, -inf(f64), -1.0); | 7913 | try testArgs(f64, -inf(f64), -1e0); |
| 2422 | try testArgs(f64, -inf(f64), -0.1); | 7914 | try testArgs(f64, -inf(f64), -1e-1); |
| 2423 | try testArgs(f64, -inf(f64), -fmin(f64)); | 7915 | try testArgs(f64, -inf(f64), -fmin(f64)); |
| 2424 | try testArgs(f64, -inf(f64), -tmin(f64)); | 7916 | try testArgs(f64, -inf(f64), -tmin(f64)); |
| 2425 | try testArgs(f64, -inf(f64), -0.0); | 7917 | try testArgs(f64, -inf(f64), -0.0); |
| 2426 | try testArgs(f64, -inf(f64), 0.0); | 7918 | try testArgs(f64, -inf(f64), 0.0); |
| 2427 | try testArgs(f64, -inf(f64), tmin(f64)); | 7919 | try testArgs(f64, -inf(f64), tmin(f64)); |
| 2428 | try testArgs(f64, -inf(f64), fmin(f64)); | 7920 | try testArgs(f64, -inf(f64), fmin(f64)); |
| 2429 | try testArgs(f64, -inf(f64), 0.1); | 7921 | try testArgs(f64, -inf(f64), 1e-1); |
| 2430 | try testArgs(f64, -inf(f64), 1.0); | 7922 | try testArgs(f64, -inf(f64), 1e0); |
| 2431 | try testArgs(f64, -inf(f64), 10.0); | 7923 | try testArgs(f64, -inf(f64), 1e1); |
| 2432 | try testArgs(f64, -inf(f64), fmax(f64)); | 7924 | try testArgs(f64, -inf(f64), fmax(f64)); |
| 2433 | try testArgs(f64, -inf(f64), inf(f64)); | 7925 | try testArgs(f64, -inf(f64), inf(f64)); |
| 2434 | try testArgs(f64, -inf(f64), nan(f64)); | 7926 | try testArgs(f64, -inf(f64), nan(f64)); |
| ... | @@ -2436,94 +7928,94 @@ fn binary(comptime op: anytype, comptime opts: struct { strict: bool = false }) | ... | @@ -2436,94 +7928,94 @@ fn binary(comptime op: anytype, comptime opts: struct { strict: bool = false }) |
| 2436 | try testArgs(f64, -fmax(f64), -nan(f64)); | 7928 | try testArgs(f64, -fmax(f64), -nan(f64)); |
| 2437 | try testArgs(f64, -fmax(f64), -inf(f64)); | 7929 | try testArgs(f64, -fmax(f64), -inf(f64)); |
| 2438 | try testArgs(f64, -fmax(f64), -fmax(f64)); | 7930 | try testArgs(f64, -fmax(f64), -fmax(f64)); |
| 2439 | try testArgs(f64, -fmax(f64), -10.0); | 7931 | try testArgs(f64, -fmax(f64), -1e1); |
| 2440 | try testArgs(f64, -fmax(f64), -1.0); | 7932 | try testArgs(f64, -fmax(f64), -1e0); |
| 2441 | try testArgs(f64, -fmax(f64), -0.1); | 7933 | try testArgs(f64, -fmax(f64), -1e-1); |
| 2442 | try testArgs(f64, -fmax(f64), -fmin(f64)); | 7934 | try testArgs(f64, -fmax(f64), -fmin(f64)); |
| 2443 | try testArgs(f64, -fmax(f64), -tmin(f64)); | 7935 | try testArgs(f64, -fmax(f64), -tmin(f64)); |
| 2444 | try testArgs(f64, -fmax(f64), -0.0); | 7936 | try testArgs(f64, -fmax(f64), -0.0); |
| 2445 | try testArgs(f64, -fmax(f64), 0.0); | 7937 | try testArgs(f64, -fmax(f64), 0.0); |
| 2446 | try testArgs(f64, -fmax(f64), tmin(f64)); | 7938 | try testArgs(f64, -fmax(f64), tmin(f64)); |
| 2447 | try testArgs(f64, -fmax(f64), fmin(f64)); | 7939 | try testArgs(f64, -fmax(f64), fmin(f64)); |
| 2448 | try testArgs(f64, -fmax(f64), 0.1); | 7940 | try testArgs(f64, -fmax(f64), 1e-1); |
| 2449 | try testArgs(f64, -fmax(f64), 1.0); | 7941 | try testArgs(f64, -fmax(f64), 1e0); |
| 2450 | try testArgs(f64, -fmax(f64), 10.0); | 7942 | try testArgs(f64, -fmax(f64), 1e1); |
| 2451 | try testArgs(f64, -fmax(f64), fmax(f64)); | 7943 | try testArgs(f64, -fmax(f64), fmax(f64)); |
| 2452 | try testArgs(f64, -fmax(f64), inf(f64)); | 7944 | try testArgs(f64, -fmax(f64), inf(f64)); |
| 2453 | try testArgs(f64, -fmax(f64), nan(f64)); | 7945 | try testArgs(f64, -fmax(f64), nan(f64)); |
| 2454 | 7946 | ||
| 2455 | try testArgs(f64, -10.0, -nan(f64)); | 7947 | try testArgs(f64, -1e1, -nan(f64)); |
| 2456 | try testArgs(f64, -10.0, -inf(f64)); | 7948 | try testArgs(f64, -1e1, -inf(f64)); |
| 2457 | try testArgs(f64, -10.0, -fmax(f64)); | 7949 | try testArgs(f64, -1e1, -fmax(f64)); |
| 2458 | try testArgs(f64, -10.0, -10.0); | 7950 | try testArgs(f64, -1e1, -1e1); |
| 2459 | try testArgs(f64, -10.0, -1.0); | 7951 | try testArgs(f64, -1e1, -1e0); |
| 2460 | try testArgs(f64, -10.0, -0.1); | 7952 | try testArgs(f64, -1e1, -1e-1); |
| 2461 | try testArgs(f64, -10.0, -fmin(f64)); | 7953 | try testArgs(f64, -1e1, -fmin(f64)); |
| 2462 | try testArgs(f64, -10.0, -tmin(f64)); | 7954 | try testArgs(f64, -1e1, -tmin(f64)); |
| 2463 | try testArgs(f64, -10.0, -0.0); | 7955 | try testArgs(f64, -1e1, -0.0); |
| 2464 | try testArgs(f64, -10.0, 0.0); | 7956 | try testArgs(f64, -1e1, 0.0); |
| 2465 | try testArgs(f64, -10.0, tmin(f64)); | 7957 | try testArgs(f64, -1e1, tmin(f64)); |
| 2466 | try testArgs(f64, -10.0, fmin(f64)); | 7958 | try testArgs(f64, -1e1, fmin(f64)); |
| 2467 | try testArgs(f64, -10.0, 0.1); | 7959 | try testArgs(f64, -1e1, 1e-1); |
| 2468 | try testArgs(f64, -10.0, 1.0); | 7960 | try testArgs(f64, -1e1, 1e0); |
| 2469 | try testArgs(f64, -10.0, 10.0); | 7961 | try testArgs(f64, -1e1, 1e1); |
| 2470 | try testArgs(f64, -10.0, fmax(f64)); | 7962 | try testArgs(f64, -1e1, fmax(f64)); |
| 2471 | try testArgs(f64, -10.0, inf(f64)); | 7963 | try testArgs(f64, -1e1, inf(f64)); |
| 2472 | try testArgs(f64, -10.0, nan(f64)); | 7964 | try testArgs(f64, -1e1, nan(f64)); |
| 2473 | 7965 | ||
| 2474 | try testArgs(f64, -1.0, -nan(f64)); | 7966 | try testArgs(f64, -1e0, -nan(f64)); |
| 2475 | try testArgs(f64, -1.0, -inf(f64)); | 7967 | try testArgs(f64, -1e0, -inf(f64)); |
| 2476 | try testArgs(f64, -1.0, -fmax(f64)); | 7968 | try testArgs(f64, -1e0, -fmax(f64)); |
| 2477 | try testArgs(f64, -1.0, -10.0); | 7969 | try testArgs(f64, -1e0, -1e1); |
| 2478 | try testArgs(f64, -1.0, -1.0); | 7970 | try testArgs(f64, -1e0, -1e0); |
| 2479 | try testArgs(f64, -1.0, -0.1); | 7971 | try testArgs(f64, -1e0, -1e-1); |
| 2480 | try testArgs(f64, -1.0, -fmin(f64)); | 7972 | try testArgs(f64, -1e0, -fmin(f64)); |
| 2481 | try testArgs(f64, -1.0, -tmin(f64)); | 7973 | try testArgs(f64, -1e0, -tmin(f64)); |
| 2482 | try testArgs(f64, -1.0, -0.0); | 7974 | try testArgs(f64, -1e0, -0.0); |
| 2483 | try testArgs(f64, -1.0, 0.0); | 7975 | try testArgs(f64, -1e0, 0.0); |
| 2484 | try testArgs(f64, -1.0, tmin(f64)); | 7976 | try testArgs(f64, -1e0, tmin(f64)); |
| 2485 | try testArgs(f64, -1.0, fmin(f64)); | 7977 | try testArgs(f64, -1e0, fmin(f64)); |
| 2486 | try testArgs(f64, -1.0, 0.1); | 7978 | try testArgs(f64, -1e0, 1e-1); |
| 2487 | try testArgs(f64, -1.0, 1.0); | 7979 | try testArgs(f64, -1e0, 1e0); |
| 2488 | try testArgs(f64, -1.0, 10.0); | 7980 | try testArgs(f64, -1e0, 1e1); |
| 2489 | try testArgs(f64, -1.0, fmax(f64)); | 7981 | try testArgs(f64, -1e0, fmax(f64)); |
| 2490 | try testArgs(f64, -1.0, inf(f64)); | 7982 | try testArgs(f64, -1e0, inf(f64)); |
| 2491 | try testArgs(f64, -1.0, nan(f64)); | 7983 | try testArgs(f64, -1e0, nan(f64)); |
| 2492 | 7984 | ||
| 2493 | try testArgs(f64, -0.1, -nan(f64)); | 7985 | try testArgs(f64, -1e-1, -nan(f64)); |
| 2494 | try testArgs(f64, -0.1, -inf(f64)); | 7986 | try testArgs(f64, -1e-1, -inf(f64)); |
| 2495 | try testArgs(f64, -0.1, -fmax(f64)); | 7987 | try testArgs(f64, -1e-1, -fmax(f64)); |
| 2496 | try testArgs(f64, -0.1, -10.0); | 7988 | try testArgs(f64, -1e-1, -1e1); |
| 2497 | try testArgs(f64, -0.1, -1.0); | 7989 | try testArgs(f64, -1e-1, -1e0); |
| 2498 | try testArgs(f64, -0.1, -0.1); | 7990 | try testArgs(f64, -1e-1, -1e-1); |
| 2499 | try testArgs(f64, -0.1, -fmin(f64)); | 7991 | try testArgs(f64, -1e-1, -fmin(f64)); |
| 2500 | try testArgs(f64, -0.1, -tmin(f64)); | 7992 | try testArgs(f64, -1e-1, -tmin(f64)); |
| 2501 | try testArgs(f64, -0.1, -0.0); | 7993 | try testArgs(f64, -1e-1, -0.0); |
| 2502 | try testArgs(f64, -0.1, 0.0); | 7994 | try testArgs(f64, -1e-1, 0.0); |
| 2503 | try testArgs(f64, -0.1, tmin(f64)); | 7995 | try testArgs(f64, -1e-1, tmin(f64)); |
| 2504 | try testArgs(f64, -0.1, fmin(f64)); | 7996 | try testArgs(f64, -1e-1, fmin(f64)); |
| 2505 | try testArgs(f64, -0.1, 0.1); | 7997 | try testArgs(f64, -1e-1, 1e-1); |
| 2506 | try testArgs(f64, -0.1, 1.0); | 7998 | try testArgs(f64, -1e-1, 1e0); |
| 2507 | try testArgs(f64, -0.1, 10.0); | 7999 | try testArgs(f64, -1e-1, 1e1); |
| 2508 | try testArgs(f64, -0.1, fmax(f64)); | 8000 | try testArgs(f64, -1e-1, fmax(f64)); |
| 2509 | try testArgs(f64, -0.1, inf(f64)); | 8001 | try testArgs(f64, -1e-1, inf(f64)); |
| 2510 | try testArgs(f64, -0.1, nan(f64)); | 8002 | try testArgs(f64, -1e-1, nan(f64)); |
| 2511 | 8003 | ||
| 2512 | try testArgs(f64, -fmin(f64), -nan(f64)); | 8004 | try testArgs(f64, -fmin(f64), -nan(f64)); |
| 2513 | try testArgs(f64, -fmin(f64), -inf(f64)); | 8005 | try testArgs(f64, -fmin(f64), -inf(f64)); |
| 2514 | try testArgs(f64, -fmin(f64), -fmax(f64)); | 8006 | try testArgs(f64, -fmin(f64), -fmax(f64)); |
| 2515 | try testArgs(f64, -fmin(f64), -10.0); | 8007 | try testArgs(f64, -fmin(f64), -1e1); |
| 2516 | try testArgs(f64, -fmin(f64), -1.0); | 8008 | try testArgs(f64, -fmin(f64), -1e0); |
| 2517 | try testArgs(f64, -fmin(f64), -0.1); | 8009 | try testArgs(f64, -fmin(f64), -1e-1); |
| 2518 | try testArgs(f64, -fmin(f64), -fmin(f64)); | 8010 | try testArgs(f64, -fmin(f64), -fmin(f64)); |
| 2519 | try testArgs(f64, -fmin(f64), -tmin(f64)); | 8011 | try testArgs(f64, -fmin(f64), -tmin(f64)); |
| 2520 | try testArgs(f64, -fmin(f64), -0.0); | 8012 | try testArgs(f64, -fmin(f64), -0.0); |
| 2521 | try testArgs(f64, -fmin(f64), 0.0); | 8013 | try testArgs(f64, -fmin(f64), 0.0); |
| 2522 | try testArgs(f64, -fmin(f64), tmin(f64)); | 8014 | try testArgs(f64, -fmin(f64), tmin(f64)); |
| 2523 | try testArgs(f64, -fmin(f64), fmin(f64)); | 8015 | try testArgs(f64, -fmin(f64), fmin(f64)); |
| 2524 | try testArgs(f64, -fmin(f64), 0.1); | 8016 | try testArgs(f64, -fmin(f64), 1e-1); |
| 2525 | try testArgs(f64, -fmin(f64), 1.0); | 8017 | try testArgs(f64, -fmin(f64), 1e0); |
| 2526 | try testArgs(f64, -fmin(f64), 10.0); | 8018 | try testArgs(f64, -fmin(f64), 1e1); |
| 2527 | try testArgs(f64, -fmin(f64), fmax(f64)); | 8019 | try testArgs(f64, -fmin(f64), fmax(f64)); |
| 2528 | try testArgs(f64, -fmin(f64), inf(f64)); | 8020 | try testArgs(f64, -fmin(f64), inf(f64)); |
| 2529 | try testArgs(f64, -fmin(f64), nan(f64)); | 8021 | try testArgs(f64, -fmin(f64), nan(f64)); |
| ... | @@ -2531,18 +8023,18 @@ fn binary(comptime op: anytype, comptime opts: struct { strict: bool = false }) | ... | @@ -2531,18 +8023,18 @@ fn binary(comptime op: anytype, comptime opts: struct { strict: bool = false }) |
| 2531 | try testArgs(f64, -tmin(f64), -nan(f64)); | 8023 | try testArgs(f64, -tmin(f64), -nan(f64)); |
| 2532 | try testArgs(f64, -tmin(f64), -inf(f64)); | 8024 | try testArgs(f64, -tmin(f64), -inf(f64)); |
| 2533 | try testArgs(f64, -tmin(f64), -fmax(f64)); | 8025 | try testArgs(f64, -tmin(f64), -fmax(f64)); |
| 2534 | try testArgs(f64, -tmin(f64), -10.0); | 8026 | try testArgs(f64, -tmin(f64), -1e1); |
| 2535 | try testArgs(f64, -tmin(f64), -1.0); | 8027 | try testArgs(f64, -tmin(f64), -1e0); |
| 2536 | try testArgs(f64, -tmin(f64), -0.1); | 8028 | try testArgs(f64, -tmin(f64), -1e-1); |
| 2537 | try testArgs(f64, -tmin(f64), -fmin(f64)); | 8029 | try testArgs(f64, -tmin(f64), -fmin(f64)); |
| 2538 | try testArgs(f64, -tmin(f64), -tmin(f64)); | 8030 | try testArgs(f64, -tmin(f64), -tmin(f64)); |
| 2539 | try testArgs(f64, -tmin(f64), -0.0); | 8031 | try testArgs(f64, -tmin(f64), -0.0); |
| 2540 | try testArgs(f64, -tmin(f64), 0.0); | 8032 | try testArgs(f64, -tmin(f64), 0.0); |
| 2541 | try testArgs(f64, -tmin(f64), tmin(f64)); | 8033 | try testArgs(f64, -tmin(f64), tmin(f64)); |
| 2542 | try testArgs(f64, -tmin(f64), fmin(f64)); | 8034 | try testArgs(f64, -tmin(f64), fmin(f64)); |
| 2543 | try testArgs(f64, -tmin(f64), 0.1); | 8035 | try testArgs(f64, -tmin(f64), 1e-1); |
| 2544 | try testArgs(f64, -tmin(f64), 1.0); | 8036 | try testArgs(f64, -tmin(f64), 1e0); |
| 2545 | try testArgs(f64, -tmin(f64), 10.0); | 8037 | try testArgs(f64, -tmin(f64), 1e1); |
| 2546 | try testArgs(f64, -tmin(f64), fmax(f64)); | 8038 | try testArgs(f64, -tmin(f64), fmax(f64)); |
| 2547 | try testArgs(f64, -tmin(f64), inf(f64)); | 8039 | try testArgs(f64, -tmin(f64), inf(f64)); |
| 2548 | try testArgs(f64, -tmin(f64), nan(f64)); | 8040 | try testArgs(f64, -tmin(f64), nan(f64)); |
| ... | @@ -2550,18 +8042,18 @@ fn binary(comptime op: anytype, comptime opts: struct { strict: bool = false }) | ... | @@ -2550,18 +8042,18 @@ fn binary(comptime op: anytype, comptime opts: struct { strict: bool = false }) |
| 2550 | try testArgs(f64, -0.0, -nan(f64)); | 8042 | try testArgs(f64, -0.0, -nan(f64)); |
| 2551 | try testArgs(f64, -0.0, -inf(f64)); | 8043 | try testArgs(f64, -0.0, -inf(f64)); |
| 2552 | try testArgs(f64, -0.0, -fmax(f64)); | 8044 | try testArgs(f64, -0.0, -fmax(f64)); |
| 2553 | try testArgs(f64, -0.0, -10.0); | 8045 | try testArgs(f64, -0.0, -1e1); |
| 2554 | try testArgs(f64, -0.0, -1.0); | 8046 | try testArgs(f64, -0.0, -1e0); |
| 2555 | try testArgs(f64, -0.0, -0.1); | 8047 | try testArgs(f64, -0.0, -1e-1); |
| 2556 | try testArgs(f64, -0.0, -fmin(f64)); | 8048 | try testArgs(f64, -0.0, -fmin(f64)); |
| 2557 | try testArgs(f64, -0.0, -tmin(f64)); | 8049 | try testArgs(f64, -0.0, -tmin(f64)); |
| 2558 | try testArgs(f64, -0.0, -0.0); | 8050 | try testArgs(f64, -0.0, -0.0); |
| 2559 | try testArgs(f64, -0.0, 0.0); | 8051 | try testArgs(f64, -0.0, 0.0); |
| 2560 | try testArgs(f64, -0.0, tmin(f64)); | 8052 | try testArgs(f64, -0.0, tmin(f64)); |
| 2561 | try testArgs(f64, -0.0, fmin(f64)); | 8053 | try testArgs(f64, -0.0, fmin(f64)); |
| 2562 | try testArgs(f64, -0.0, 0.1); | 8054 | try testArgs(f64, -0.0, 1e-1); |
| 2563 | try testArgs(f64, -0.0, 1.0); | 8055 | try testArgs(f64, -0.0, 1e0); |
| 2564 | try testArgs(f64, -0.0, 10.0); | 8056 | try testArgs(f64, -0.0, 1e1); |
| 2565 | try testArgs(f64, -0.0, fmax(f64)); | 8057 | try testArgs(f64, -0.0, fmax(f64)); |
| 2566 | try testArgs(f64, -0.0, inf(f64)); | 8058 | try testArgs(f64, -0.0, inf(f64)); |
| 2567 | try testArgs(f64, -0.0, nan(f64)); | 8059 | try testArgs(f64, -0.0, nan(f64)); |
| ... | @@ -2569,18 +8061,18 @@ fn binary(comptime op: anytype, comptime opts: struct { strict: bool = false }) | ... | @@ -2569,18 +8061,18 @@ fn binary(comptime op: anytype, comptime opts: struct { strict: bool = false }) |
| 2569 | try testArgs(f64, 0.0, -nan(f64)); | 8061 | try testArgs(f64, 0.0, -nan(f64)); |
| 2570 | try testArgs(f64, 0.0, -inf(f64)); | 8062 | try testArgs(f64, 0.0, -inf(f64)); |
| 2571 | try testArgs(f64, 0.0, -fmax(f64)); | 8063 | try testArgs(f64, 0.0, -fmax(f64)); |
| 2572 | try testArgs(f64, 0.0, -10.0); | 8064 | try testArgs(f64, 0.0, -1e1); |
| 2573 | try testArgs(f64, 0.0, -1.0); | 8065 | try testArgs(f64, 0.0, -1e0); |
| 2574 | try testArgs(f64, 0.0, -0.1); | 8066 | try testArgs(f64, 0.0, -1e-1); |
| 2575 | try testArgs(f64, 0.0, -fmin(f64)); | 8067 | try testArgs(f64, 0.0, -fmin(f64)); |
| 2576 | try testArgs(f64, 0.0, -tmin(f64)); | 8068 | try testArgs(f64, 0.0, -tmin(f64)); |
| 2577 | try testArgs(f64, 0.0, -0.0); | 8069 | try testArgs(f64, 0.0, -0.0); |
| 2578 | try testArgs(f64, 0.0, 0.0); | 8070 | try testArgs(f64, 0.0, 0.0); |
| 2579 | try testArgs(f64, 0.0, tmin(f64)); | 8071 | try testArgs(f64, 0.0, tmin(f64)); |
| 2580 | try testArgs(f64, 0.0, fmin(f64)); | 8072 | try testArgs(f64, 0.0, fmin(f64)); |
| 2581 | try testArgs(f64, 0.0, 0.1); | 8073 | try testArgs(f64, 0.0, 1e-1); |
| 2582 | try testArgs(f64, 0.0, 1.0); | 8074 | try testArgs(f64, 0.0, 1e0); |
| 2583 | try testArgs(f64, 0.0, 10.0); | 8075 | try testArgs(f64, 0.0, 1e1); |
| 2584 | try testArgs(f64, 0.0, fmax(f64)); | 8076 | try testArgs(f64, 0.0, fmax(f64)); |
| 2585 | try testArgs(f64, 0.0, inf(f64)); | 8077 | try testArgs(f64, 0.0, inf(f64)); |
| 2586 | try testArgs(f64, 0.0, nan(f64)); | 8078 | try testArgs(f64, 0.0, nan(f64)); |
| ... | @@ -2588,18 +8080,18 @@ fn binary(comptime op: anytype, comptime opts: struct { strict: bool = false }) | ... | @@ -2588,18 +8080,18 @@ fn binary(comptime op: anytype, comptime opts: struct { strict: bool = false }) |
| 2588 | try testArgs(f64, tmin(f64), -nan(f64)); | 8080 | try testArgs(f64, tmin(f64), -nan(f64)); |
| 2589 | try testArgs(f64, tmin(f64), -inf(f64)); | 8081 | try testArgs(f64, tmin(f64), -inf(f64)); |
| 2590 | try testArgs(f64, tmin(f64), -fmax(f64)); | 8082 | try testArgs(f64, tmin(f64), -fmax(f64)); |
| 2591 | try testArgs(f64, tmin(f64), -10.0); | 8083 | try testArgs(f64, tmin(f64), -1e1); |
| 2592 | try testArgs(f64, tmin(f64), -1.0); | 8084 | try testArgs(f64, tmin(f64), -1e0); |
| 2593 | try testArgs(f64, tmin(f64), -0.1); | 8085 | try testArgs(f64, tmin(f64), -1e-1); |
| 2594 | try testArgs(f64, tmin(f64), -fmin(f64)); | 8086 | try testArgs(f64, tmin(f64), -fmin(f64)); |
| 2595 | try testArgs(f64, tmin(f64), -tmin(f64)); | 8087 | try testArgs(f64, tmin(f64), -tmin(f64)); |
| 2596 | try testArgs(f64, tmin(f64), -0.0); | 8088 | try testArgs(f64, tmin(f64), -0.0); |
| 2597 | try testArgs(f64, tmin(f64), 0.0); | 8089 | try testArgs(f64, tmin(f64), 0.0); |
| 2598 | try testArgs(f64, tmin(f64), tmin(f64)); | 8090 | try testArgs(f64, tmin(f64), tmin(f64)); |
| 2599 | try testArgs(f64, tmin(f64), fmin(f64)); | 8091 | try testArgs(f64, tmin(f64), fmin(f64)); |
| 2600 | try testArgs(f64, tmin(f64), 0.1); | 8092 | try testArgs(f64, tmin(f64), 1e-1); |
| 2601 | try testArgs(f64, tmin(f64), 1.0); | 8093 | try testArgs(f64, tmin(f64), 1e0); |
| 2602 | try testArgs(f64, tmin(f64), 10.0); | 8094 | try testArgs(f64, tmin(f64), 1e1); |
| 2603 | try testArgs(f64, tmin(f64), fmax(f64)); | 8095 | try testArgs(f64, tmin(f64), fmax(f64)); |
| 2604 | try testArgs(f64, tmin(f64), inf(f64)); | 8096 | try testArgs(f64, tmin(f64), inf(f64)); |
| 2605 | try testArgs(f64, tmin(f64), nan(f64)); | 8097 | try testArgs(f64, tmin(f64), nan(f64)); |
| ... | @@ -2607,94 +8099,94 @@ fn binary(comptime op: anytype, comptime opts: struct { strict: bool = false }) | ... | @@ -2607,94 +8099,94 @@ fn binary(comptime op: anytype, comptime opts: struct { strict: bool = false }) |
| 2607 | try testArgs(f64, fmin(f64), -nan(f64)); | 8099 | try testArgs(f64, fmin(f64), -nan(f64)); |
| 2608 | try testArgs(f64, fmin(f64), -inf(f64)); | 8100 | try testArgs(f64, fmin(f64), -inf(f64)); |
| 2609 | try testArgs(f64, fmin(f64), -fmax(f64)); | 8101 | try testArgs(f64, fmin(f64), -fmax(f64)); |
| 2610 | try testArgs(f64, fmin(f64), -10.0); | 8102 | try testArgs(f64, fmin(f64), -1e1); |
| 2611 | try testArgs(f64, fmin(f64), -1.0); | 8103 | try testArgs(f64, fmin(f64), -1e0); |
| 2612 | try testArgs(f64, fmin(f64), -0.1); | 8104 | try testArgs(f64, fmin(f64), -1e-1); |
| 2613 | try testArgs(f64, fmin(f64), -fmin(f64)); | 8105 | try testArgs(f64, fmin(f64), -fmin(f64)); |
| 2614 | try testArgs(f64, fmin(f64), -tmin(f64)); | 8106 | try testArgs(f64, fmin(f64), -tmin(f64)); |
| 2615 | try testArgs(f64, fmin(f64), -0.0); | 8107 | try testArgs(f64, fmin(f64), -0.0); |
| 2616 | try testArgs(f64, fmin(f64), 0.0); | 8108 | try testArgs(f64, fmin(f64), 0.0); |
| 2617 | try testArgs(f64, fmin(f64), tmin(f64)); | 8109 | try testArgs(f64, fmin(f64), tmin(f64)); |
| 2618 | try testArgs(f64, fmin(f64), fmin(f64)); | 8110 | try testArgs(f64, fmin(f64), fmin(f64)); |
| 2619 | try testArgs(f64, fmin(f64), 0.1); | 8111 | try testArgs(f64, fmin(f64), 1e-1); |
| 2620 | try testArgs(f64, fmin(f64), 1.0); | 8112 | try testArgs(f64, fmin(f64), 1e0); |
| 2621 | try testArgs(f64, fmin(f64), 10.0); | 8113 | try testArgs(f64, fmin(f64), 1e1); |
| 2622 | try testArgs(f64, fmin(f64), fmax(f64)); | 8114 | try testArgs(f64, fmin(f64), fmax(f64)); |
| 2623 | try testArgs(f64, fmin(f64), inf(f64)); | 8115 | try testArgs(f64, fmin(f64), inf(f64)); |
| 2624 | try testArgs(f64, fmin(f64), nan(f64)); | 8116 | try testArgs(f64, fmin(f64), nan(f64)); |
| 2625 | 8117 | ||
| 2626 | try testArgs(f64, 0.1, -nan(f64)); | 8118 | try testArgs(f64, 1e-1, -nan(f64)); |
| 2627 | try testArgs(f64, 0.1, -inf(f64)); | 8119 | try testArgs(f64, 1e-1, -inf(f64)); |
| 2628 | try testArgs(f64, 0.1, -fmax(f64)); | 8120 | try testArgs(f64, 1e-1, -fmax(f64)); |
| 2629 | try testArgs(f64, 0.1, -10.0); | 8121 | try testArgs(f64, 1e-1, -1e1); |
| 2630 | try testArgs(f64, 0.1, -1.0); | 8122 | try testArgs(f64, 1e-1, -1e0); |
| 2631 | try testArgs(f64, 0.1, -0.1); | 8123 | try testArgs(f64, 1e-1, -1e-1); |
| 2632 | try testArgs(f64, 0.1, -fmin(f64)); | 8124 | try testArgs(f64, 1e-1, -fmin(f64)); |
| 2633 | try testArgs(f64, 0.1, -tmin(f64)); | 8125 | try testArgs(f64, 1e-1, -tmin(f64)); |
| 2634 | try testArgs(f64, 0.1, -0.0); | 8126 | try testArgs(f64, 1e-1, -0.0); |
| 2635 | try testArgs(f64, 0.1, 0.0); | 8127 | try testArgs(f64, 1e-1, 0.0); |
| 2636 | try testArgs(f64, 0.1, tmin(f64)); | 8128 | try testArgs(f64, 1e-1, tmin(f64)); |
| 2637 | try testArgs(f64, 0.1, fmin(f64)); | 8129 | try testArgs(f64, 1e-1, fmin(f64)); |
| 2638 | try testArgs(f64, 0.1, 0.1); | 8130 | try testArgs(f64, 1e-1, 1e-1); |
| 2639 | try testArgs(f64, 0.1, 1.0); | 8131 | try testArgs(f64, 1e-1, 1e0); |
| 2640 | try testArgs(f64, 0.1, 10.0); | 8132 | try testArgs(f64, 1e-1, 1e1); |
| 2641 | try testArgs(f64, 0.1, fmax(f64)); | 8133 | try testArgs(f64, 1e-1, fmax(f64)); |
| 2642 | try testArgs(f64, 0.1, inf(f64)); | 8134 | try testArgs(f64, 1e-1, inf(f64)); |
| 2643 | try testArgs(f64, 0.1, nan(f64)); | 8135 | try testArgs(f64, 1e-1, nan(f64)); |
| 2644 | 8136 | ||
| 2645 | try testArgs(f64, 1.0, -nan(f64)); | 8137 | try testArgs(f64, 1e0, -nan(f64)); |
| 2646 | try testArgs(f64, 1.0, -inf(f64)); | 8138 | try testArgs(f64, 1e0, -inf(f64)); |
| 2647 | try testArgs(f64, 1.0, -fmax(f64)); | 8139 | try testArgs(f64, 1e0, -fmax(f64)); |
| 2648 | try testArgs(f64, 1.0, -10.0); | 8140 | try testArgs(f64, 1e0, -1e1); |
| 2649 | try testArgs(f64, 1.0, -1.0); | 8141 | try testArgs(f64, 1e0, -1e0); |
| 2650 | try testArgs(f64, 1.0, -0.1); | 8142 | try testArgs(f64, 1e0, -1e-1); |
| 2651 | try testArgs(f64, 1.0, -fmin(f64)); | 8143 | try testArgs(f64, 1e0, -fmin(f64)); |
| 2652 | try testArgs(f64, 1.0, -tmin(f64)); | 8144 | try testArgs(f64, 1e0, -tmin(f64)); |
| 2653 | try testArgs(f64, 1.0, -0.0); | 8145 | try testArgs(f64, 1e0, -0.0); |
| 2654 | try testArgs(f64, 1.0, 0.0); | 8146 | try testArgs(f64, 1e0, 0.0); |
| 2655 | try testArgs(f64, 1.0, tmin(f64)); | 8147 | try testArgs(f64, 1e0, tmin(f64)); |
| 2656 | try testArgs(f64, 1.0, fmin(f64)); | 8148 | try testArgs(f64, 1e0, fmin(f64)); |
| 2657 | try testArgs(f64, 1.0, 0.1); | 8149 | try testArgs(f64, 1e0, 1e-1); |
| 2658 | try testArgs(f64, 1.0, 1.0); | 8150 | try testArgs(f64, 1e0, 1e0); |
| 2659 | try testArgs(f64, 1.0, 10.0); | 8151 | try testArgs(f64, 1e0, 1e1); |
| 2660 | try testArgs(f64, 1.0, fmax(f64)); | 8152 | try testArgs(f64, 1e0, fmax(f64)); |
| 2661 | try testArgs(f64, 1.0, inf(f64)); | 8153 | try testArgs(f64, 1e0, inf(f64)); |
| 2662 | try testArgs(f64, 1.0, nan(f64)); | 8154 | try testArgs(f64, 1e0, nan(f64)); |
| 2663 | 8155 | ||
| 2664 | try testArgs(f64, 10.0, -nan(f64)); | 8156 | try testArgs(f64, 1e1, -nan(f64)); |
| 2665 | try testArgs(f64, 10.0, -inf(f64)); | 8157 | try testArgs(f64, 1e1, -inf(f64)); |
| 2666 | try testArgs(f64, 10.0, -fmax(f64)); | 8158 | try testArgs(f64, 1e1, -fmax(f64)); |
| 2667 | try testArgs(f64, 10.0, -10.0); | 8159 | try testArgs(f64, 1e1, -1e1); |
| 2668 | try testArgs(f64, 10.0, -1.0); | 8160 | try testArgs(f64, 1e1, -1e0); |
| 2669 | try testArgs(f64, 10.0, -0.1); | 8161 | try testArgs(f64, 1e1, -1e-1); |
| 2670 | try testArgs(f64, 10.0, -fmin(f64)); | 8162 | try testArgs(f64, 1e1, -fmin(f64)); |
| 2671 | try testArgs(f64, 10.0, -tmin(f64)); | 8163 | try testArgs(f64, 1e1, -tmin(f64)); |
| 2672 | try testArgs(f64, 10.0, -0.0); | 8164 | try testArgs(f64, 1e1, -0.0); |
| 2673 | try testArgs(f64, 10.0, 0.0); | 8165 | try testArgs(f64, 1e1, 0.0); |
| 2674 | try testArgs(f64, 10.0, tmin(f64)); | 8166 | try testArgs(f64, 1e1, tmin(f64)); |
| 2675 | try testArgs(f64, 10.0, fmin(f64)); | 8167 | try testArgs(f64, 1e1, fmin(f64)); |
| 2676 | try testArgs(f64, 10.0, 0.1); | 8168 | try testArgs(f64, 1e1, 1e-1); |
| 2677 | try testArgs(f64, 10.0, 1.0); | 8169 | try testArgs(f64, 1e1, 1e0); |
| 2678 | try testArgs(f64, 10.0, 10.0); | 8170 | try testArgs(f64, 1e1, 1e1); |
| 2679 | try testArgs(f64, 10.0, fmax(f64)); | 8171 | try testArgs(f64, 1e1, fmax(f64)); |
| 2680 | try testArgs(f64, 10.0, inf(f64)); | 8172 | try testArgs(f64, 1e1, inf(f64)); |
| 2681 | try testArgs(f64, 10.0, nan(f64)); | 8173 | try testArgs(f64, 1e1, nan(f64)); |
| 2682 | 8174 | ||
| 2683 | try testArgs(f64, fmax(f64), -nan(f64)); | 8175 | try testArgs(f64, fmax(f64), -nan(f64)); |
| 2684 | try testArgs(f64, fmax(f64), -inf(f64)); | 8176 | try testArgs(f64, fmax(f64), -inf(f64)); |
| 2685 | try testArgs(f64, fmax(f64), -fmax(f64)); | 8177 | try testArgs(f64, fmax(f64), -fmax(f64)); |
| 2686 | try testArgs(f64, fmax(f64), -10.0); | 8178 | try testArgs(f64, fmax(f64), -1e1); |
| 2687 | try testArgs(f64, fmax(f64), -1.0); | 8179 | try testArgs(f64, fmax(f64), -1e0); |
| 2688 | try testArgs(f64, fmax(f64), -0.1); | 8180 | try testArgs(f64, fmax(f64), -1e-1); |
| 2689 | try testArgs(f64, fmax(f64), -fmin(f64)); | 8181 | try testArgs(f64, fmax(f64), -fmin(f64)); |
| 2690 | try testArgs(f64, fmax(f64), -tmin(f64)); | 8182 | try testArgs(f64, fmax(f64), -tmin(f64)); |
| 2691 | try testArgs(f64, fmax(f64), -0.0); | 8183 | try testArgs(f64, fmax(f64), -0.0); |
| 2692 | try testArgs(f64, fmax(f64), 0.0); | 8184 | try testArgs(f64, fmax(f64), 0.0); |
| 2693 | try testArgs(f64, fmax(f64), tmin(f64)); | 8185 | try testArgs(f64, fmax(f64), tmin(f64)); |
| 2694 | try testArgs(f64, fmax(f64), fmin(f64)); | 8186 | try testArgs(f64, fmax(f64), fmin(f64)); |
| 2695 | try testArgs(f64, fmax(f64), 0.1); | 8187 | try testArgs(f64, fmax(f64), 1e-1); |
| 2696 | try testArgs(f64, fmax(f64), 1.0); | 8188 | try testArgs(f64, fmax(f64), 1e0); |
| 2697 | try testArgs(f64, fmax(f64), 10.0); | 8189 | try testArgs(f64, fmax(f64), 1e1); |
| 2698 | try testArgs(f64, fmax(f64), fmax(f64)); | 8190 | try testArgs(f64, fmax(f64), fmax(f64)); |
| 2699 | try testArgs(f64, fmax(f64), inf(f64)); | 8191 | try testArgs(f64, fmax(f64), inf(f64)); |
| 2700 | try testArgs(f64, fmax(f64), nan(f64)); | 8192 | try testArgs(f64, fmax(f64), nan(f64)); |
| ... | @@ -2702,18 +8194,18 @@ fn binary(comptime op: anytype, comptime opts: struct { strict: bool = false }) | ... | @@ -2702,18 +8194,18 @@ fn binary(comptime op: anytype, comptime opts: struct { strict: bool = false }) |
| 2702 | try testArgs(f64, inf(f64), -nan(f64)); | 8194 | try testArgs(f64, inf(f64), -nan(f64)); |
| 2703 | try testArgs(f64, inf(f64), -inf(f64)); | 8195 | try testArgs(f64, inf(f64), -inf(f64)); |
| 2704 | try testArgs(f64, inf(f64), -fmax(f64)); | 8196 | try testArgs(f64, inf(f64), -fmax(f64)); |
| 2705 | try testArgs(f64, inf(f64), -10.0); | 8197 | try testArgs(f64, inf(f64), -1e1); |
| 2706 | try testArgs(f64, inf(f64), -1.0); | 8198 | try testArgs(f64, inf(f64), -1e0); |
| 2707 | try testArgs(f64, inf(f64), -0.1); | 8199 | try testArgs(f64, inf(f64), -1e-1); |
| 2708 | try testArgs(f64, inf(f64), -fmin(f64)); | 8200 | try testArgs(f64, inf(f64), -fmin(f64)); |
| 2709 | try testArgs(f64, inf(f64), -tmin(f64)); | 8201 | try testArgs(f64, inf(f64), -tmin(f64)); |
| 2710 | try testArgs(f64, inf(f64), -0.0); | 8202 | try testArgs(f64, inf(f64), -0.0); |
| 2711 | try testArgs(f64, inf(f64), 0.0); | 8203 | try testArgs(f64, inf(f64), 0.0); |
| 2712 | try testArgs(f64, inf(f64), tmin(f64)); | 8204 | try testArgs(f64, inf(f64), tmin(f64)); |
| 2713 | try testArgs(f64, inf(f64), fmin(f64)); | 8205 | try testArgs(f64, inf(f64), fmin(f64)); |
| 2714 | try testArgs(f64, inf(f64), 0.1); | 8206 | try testArgs(f64, inf(f64), 1e-1); |
| 2715 | try testArgs(f64, inf(f64), 1.0); | 8207 | try testArgs(f64, inf(f64), 1e0); |
| 2716 | try testArgs(f64, inf(f64), 10.0); | 8208 | try testArgs(f64, inf(f64), 1e1); |
| 2717 | try testArgs(f64, inf(f64), fmax(f64)); | 8209 | try testArgs(f64, inf(f64), fmax(f64)); |
| 2718 | try testArgs(f64, inf(f64), inf(f64)); | 8210 | try testArgs(f64, inf(f64), inf(f64)); |
| 2719 | try testArgs(f64, inf(f64), nan(f64)); | 8211 | try testArgs(f64, inf(f64), nan(f64)); |
| ... | @@ -2721,18 +8213,18 @@ fn binary(comptime op: anytype, comptime opts: struct { strict: bool = false }) | ... | @@ -2721,18 +8213,18 @@ fn binary(comptime op: anytype, comptime opts: struct { strict: bool = false }) |
| 2721 | try testArgs(f64, nan(f64), -nan(f64)); | 8213 | try testArgs(f64, nan(f64), -nan(f64)); |
| 2722 | try testArgs(f64, nan(f64), -inf(f64)); | 8214 | try testArgs(f64, nan(f64), -inf(f64)); |
| 2723 | try testArgs(f64, nan(f64), -fmax(f64)); | 8215 | try testArgs(f64, nan(f64), -fmax(f64)); |
| 2724 | try testArgs(f64, nan(f64), -10.0); | 8216 | try testArgs(f64, nan(f64), -1e1); |
| 2725 | try testArgs(f64, nan(f64), -1.0); | 8217 | try testArgs(f64, nan(f64), -1e0); |
| 2726 | try testArgs(f64, nan(f64), -0.1); | 8218 | try testArgs(f64, nan(f64), -1e-1); |
| 2727 | try testArgs(f64, nan(f64), -fmin(f64)); | 8219 | try testArgs(f64, nan(f64), -fmin(f64)); |
| 2728 | try testArgs(f64, nan(f64), -tmin(f64)); | 8220 | try testArgs(f64, nan(f64), -tmin(f64)); |
| 2729 | try testArgs(f64, nan(f64), -0.0); | 8221 | try testArgs(f64, nan(f64), -0.0); |
| 2730 | try testArgs(f64, nan(f64), 0.0); | 8222 | try testArgs(f64, nan(f64), 0.0); |
| 2731 | try testArgs(f64, nan(f64), tmin(f64)); | 8223 | try testArgs(f64, nan(f64), tmin(f64)); |
| 2732 | try testArgs(f64, nan(f64), fmin(f64)); | 8224 | try testArgs(f64, nan(f64), fmin(f64)); |
| 2733 | try testArgs(f64, nan(f64), 0.1); | 8225 | try testArgs(f64, nan(f64), 1e-1); |
| 2734 | try testArgs(f64, nan(f64), 1.0); | 8226 | try testArgs(f64, nan(f64), 1e0); |
| 2735 | try testArgs(f64, nan(f64), 10.0); | 8227 | try testArgs(f64, nan(f64), 1e1); |
| 2736 | try testArgs(f64, nan(f64), fmax(f64)); | 8228 | try testArgs(f64, nan(f64), fmax(f64)); |
| 2737 | try testArgs(f64, nan(f64), inf(f64)); | 8229 | try testArgs(f64, nan(f64), inf(f64)); |
| 2738 | try testArgs(f64, nan(f64), nan(f64)); | 8230 | try testArgs(f64, nan(f64), nan(f64)); |
| ... | @@ -2740,18 +8232,18 @@ fn binary(comptime op: anytype, comptime opts: struct { strict: bool = false }) | ... | @@ -2740,18 +8232,18 @@ fn binary(comptime op: anytype, comptime opts: struct { strict: bool = false }) |
| 2740 | try testArgs(f80, -nan(f80), -nan(f80)); | 8232 | try testArgs(f80, -nan(f80), -nan(f80)); |
| 2741 | try testArgs(f80, -nan(f80), -inf(f80)); | 8233 | try testArgs(f80, -nan(f80), -inf(f80)); |
| 2742 | try testArgs(f80, -nan(f80), -fmax(f80)); | 8234 | try testArgs(f80, -nan(f80), -fmax(f80)); |
| 2743 | try testArgs(f80, -nan(f80), -10.0); | 8235 | try testArgs(f80, -nan(f80), -1e1); |
| 2744 | try testArgs(f80, -nan(f80), -1.0); | 8236 | try testArgs(f80, -nan(f80), -1e0); |
| 2745 | try testArgs(f80, -nan(f80), -0.1); | 8237 | try testArgs(f80, -nan(f80), -1e-1); |
| 2746 | try testArgs(f80, -nan(f80), -fmin(f80)); | 8238 | try testArgs(f80, -nan(f80), -fmin(f80)); |
| 2747 | try testArgs(f80, -nan(f80), -tmin(f80)); | 8239 | try testArgs(f80, -nan(f80), -tmin(f80)); |
| 2748 | try testArgs(f80, -nan(f80), -0.0); | 8240 | try testArgs(f80, -nan(f80), -0.0); |
| 2749 | try testArgs(f80, -nan(f80), 0.0); | 8241 | try testArgs(f80, -nan(f80), 0.0); |
| 2750 | try testArgs(f80, -nan(f80), tmin(f80)); | 8242 | try testArgs(f80, -nan(f80), tmin(f80)); |
| 2751 | try testArgs(f80, -nan(f80), fmin(f80)); | 8243 | try testArgs(f80, -nan(f80), fmin(f80)); |
| 2752 | try testArgs(f80, -nan(f80), 0.1); | 8244 | try testArgs(f80, -nan(f80), 1e-1); |
| 2753 | try testArgs(f80, -nan(f80), 1.0); | 8245 | try testArgs(f80, -nan(f80), 1e0); |
| 2754 | try testArgs(f80, -nan(f80), 10.0); | 8246 | try testArgs(f80, -nan(f80), 1e1); |
| 2755 | try testArgs(f80, -nan(f80), fmax(f80)); | 8247 | try testArgs(f80, -nan(f80), fmax(f80)); |
| 2756 | try testArgs(f80, -nan(f80), inf(f80)); | 8248 | try testArgs(f80, -nan(f80), inf(f80)); |
| 2757 | try testArgs(f80, -nan(f80), nan(f80)); | 8249 | try testArgs(f80, -nan(f80), nan(f80)); |
| ... | @@ -2759,18 +8251,18 @@ fn binary(comptime op: anytype, comptime opts: struct { strict: bool = false }) | ... | @@ -2759,18 +8251,18 @@ fn binary(comptime op: anytype, comptime opts: struct { strict: bool = false }) |
| 2759 | try testArgs(f80, -inf(f80), -nan(f80)); | 8251 | try testArgs(f80, -inf(f80), -nan(f80)); |
| 2760 | try testArgs(f80, -inf(f80), -inf(f80)); | 8252 | try testArgs(f80, -inf(f80), -inf(f80)); |
| 2761 | try testArgs(f80, -inf(f80), -fmax(f80)); | 8253 | try testArgs(f80, -inf(f80), -fmax(f80)); |
| 2762 | try testArgs(f80, -inf(f80), -10.0); | 8254 | try testArgs(f80, -inf(f80), -1e1); |
| 2763 | try testArgs(f80, -inf(f80), -1.0); | 8255 | try testArgs(f80, -inf(f80), -1e0); |
| 2764 | try testArgs(f80, -inf(f80), -0.1); | 8256 | try testArgs(f80, -inf(f80), -1e-1); |
| 2765 | try testArgs(f80, -inf(f80), -fmin(f80)); | 8257 | try testArgs(f80, -inf(f80), -fmin(f80)); |
| 2766 | try testArgs(f80, -inf(f80), -tmin(f80)); | 8258 | try testArgs(f80, -inf(f80), -tmin(f80)); |
| 2767 | try testArgs(f80, -inf(f80), -0.0); | 8259 | try testArgs(f80, -inf(f80), -0.0); |
| 2768 | try testArgs(f80, -inf(f80), 0.0); | 8260 | try testArgs(f80, -inf(f80), 0.0); |
| 2769 | try testArgs(f80, -inf(f80), tmin(f80)); | 8261 | try testArgs(f80, -inf(f80), tmin(f80)); |
| 2770 | try testArgs(f80, -inf(f80), fmin(f80)); | 8262 | try testArgs(f80, -inf(f80), fmin(f80)); |
| 2771 | try testArgs(f80, -inf(f80), 0.1); | 8263 | try testArgs(f80, -inf(f80), 1e-1); |
| 2772 | try testArgs(f80, -inf(f80), 1.0); | 8264 | try testArgs(f80, -inf(f80), 1e0); |
| 2773 | try testArgs(f80, -inf(f80), 10.0); | 8265 | try testArgs(f80, -inf(f80), 1e1); |
| 2774 | try testArgs(f80, -inf(f80), fmax(f80)); | 8266 | try testArgs(f80, -inf(f80), fmax(f80)); |
| 2775 | try testArgs(f80, -inf(f80), inf(f80)); | 8267 | try testArgs(f80, -inf(f80), inf(f80)); |
| 2776 | try testArgs(f80, -inf(f80), nan(f80)); | 8268 | try testArgs(f80, -inf(f80), nan(f80)); |
| ... | @@ -2778,94 +8270,94 @@ fn binary(comptime op: anytype, comptime opts: struct { strict: bool = false }) | ... | @@ -2778,94 +8270,94 @@ fn binary(comptime op: anytype, comptime opts: struct { strict: bool = false }) |
| 2778 | try testArgs(f80, -fmax(f80), -nan(f80)); | 8270 | try testArgs(f80, -fmax(f80), -nan(f80)); |
| 2779 | try testArgs(f80, -fmax(f80), -inf(f80)); | 8271 | try testArgs(f80, -fmax(f80), -inf(f80)); |
| 2780 | try testArgs(f80, -fmax(f80), -fmax(f80)); | 8272 | try testArgs(f80, -fmax(f80), -fmax(f80)); |
| 2781 | try testArgs(f80, -fmax(f80), -10.0); | 8273 | try testArgs(f80, -fmax(f80), -1e1); |
| 2782 | try testArgs(f80, -fmax(f80), -1.0); | 8274 | try testArgs(f80, -fmax(f80), -1e0); |
| 2783 | try testArgs(f80, -fmax(f80), -0.1); | 8275 | try testArgs(f80, -fmax(f80), -1e-1); |
| 2784 | try testArgs(f80, -fmax(f80), -fmin(f80)); | 8276 | try testArgs(f80, -fmax(f80), -fmin(f80)); |
| 2785 | try testArgs(f80, -fmax(f80), -tmin(f80)); | 8277 | try testArgs(f80, -fmax(f80), -tmin(f80)); |
| 2786 | try testArgs(f80, -fmax(f80), -0.0); | 8278 | try testArgs(f80, -fmax(f80), -0.0); |
| 2787 | try testArgs(f80, -fmax(f80), 0.0); | 8279 | try testArgs(f80, -fmax(f80), 0.0); |
| 2788 | try testArgs(f80, -fmax(f80), tmin(f80)); | 8280 | try testArgs(f80, -fmax(f80), tmin(f80)); |
| 2789 | try testArgs(f80, -fmax(f80), fmin(f80)); | 8281 | try testArgs(f80, -fmax(f80), fmin(f80)); |
| 2790 | try testArgs(f80, -fmax(f80), 0.1); | 8282 | try testArgs(f80, -fmax(f80), 1e-1); |
| 2791 | try testArgs(f80, -fmax(f80), 1.0); | 8283 | try testArgs(f80, -fmax(f80), 1e0); |
| 2792 | try testArgs(f80, -fmax(f80), 10.0); | 8284 | try testArgs(f80, -fmax(f80), 1e1); |
| 2793 | try testArgs(f80, -fmax(f80), fmax(f80)); | 8285 | try testArgs(f80, -fmax(f80), fmax(f80)); |
| 2794 | try testArgs(f80, -fmax(f80), inf(f80)); | 8286 | try testArgs(f80, -fmax(f80), inf(f80)); |
| 2795 | try testArgs(f80, -fmax(f80), nan(f80)); | 8287 | try testArgs(f80, -fmax(f80), nan(f80)); |
| 2796 | 8288 | ||
| 2797 | try testArgs(f80, -10.0, -nan(f80)); | 8289 | try testArgs(f80, -1e1, -nan(f80)); |
| 2798 | try testArgs(f80, -10.0, -inf(f80)); | 8290 | try testArgs(f80, -1e1, -inf(f80)); |
| 2799 | try testArgs(f80, -10.0, -fmax(f80)); | 8291 | try testArgs(f80, -1e1, -fmax(f80)); |
| 2800 | try testArgs(f80, -10.0, -10.0); | 8292 | try testArgs(f80, -1e1, -1e1); |
| 2801 | try testArgs(f80, -10.0, -1.0); | 8293 | try testArgs(f80, -1e1, -1e0); |
| 2802 | try testArgs(f80, -10.0, -0.1); | 8294 | try testArgs(f80, -1e1, -1e-1); |
| 2803 | try testArgs(f80, -10.0, -fmin(f80)); | 8295 | try testArgs(f80, -1e1, -fmin(f80)); |
| 2804 | try testArgs(f80, -10.0, -tmin(f80)); | 8296 | try testArgs(f80, -1e1, -tmin(f80)); |
| 2805 | try testArgs(f80, -10.0, -0.0); | 8297 | try testArgs(f80, -1e1, -0.0); |
| 2806 | try testArgs(f80, -10.0, 0.0); | 8298 | try testArgs(f80, -1e1, 0.0); |
| 2807 | try testArgs(f80, -10.0, tmin(f80)); | 8299 | try testArgs(f80, -1e1, tmin(f80)); |
| 2808 | try testArgs(f80, -10.0, fmin(f80)); | 8300 | try testArgs(f80, -1e1, fmin(f80)); |
| 2809 | try testArgs(f80, -10.0, 0.1); | 8301 | try testArgs(f80, -1e1, 1e-1); |
| 2810 | try testArgs(f80, -10.0, 1.0); | 8302 | try testArgs(f80, -1e1, 1e0); |
| 2811 | try testArgs(f80, -10.0, 10.0); | 8303 | try testArgs(f80, -1e1, 1e1); |
| 2812 | try testArgs(f80, -10.0, fmax(f80)); | 8304 | try testArgs(f80, -1e1, fmax(f80)); |
| 2813 | try testArgs(f80, -10.0, inf(f80)); | 8305 | try testArgs(f80, -1e1, inf(f80)); |
| 2814 | try testArgs(f80, -10.0, nan(f80)); | 8306 | try testArgs(f80, -1e1, nan(f80)); |
| 2815 | 8307 | ||
| 2816 | try testArgs(f80, -1.0, -nan(f80)); | 8308 | try testArgs(f80, -1e0, -nan(f80)); |
| 2817 | try testArgs(f80, -1.0, -inf(f80)); | 8309 | try testArgs(f80, -1e0, -inf(f80)); |
| 2818 | try testArgs(f80, -1.0, -fmax(f80)); | 8310 | try testArgs(f80, -1e0, -fmax(f80)); |
| 2819 | try testArgs(f80, -1.0, -10.0); | 8311 | try testArgs(f80, -1e0, -1e1); |
| 2820 | try testArgs(f80, -1.0, -1.0); | 8312 | try testArgs(f80, -1e0, -1e0); |
| 2821 | try testArgs(f80, -1.0, -0.1); | 8313 | try testArgs(f80, -1e0, -1e-1); |
| 2822 | try testArgs(f80, -1.0, -fmin(f80)); | 8314 | try testArgs(f80, -1e0, -fmin(f80)); |
| 2823 | try testArgs(f80, -1.0, -tmin(f80)); | 8315 | try testArgs(f80, -1e0, -tmin(f80)); |
| 2824 | try testArgs(f80, -1.0, -0.0); | 8316 | try testArgs(f80, -1e0, -0.0); |
| 2825 | try testArgs(f80, -1.0, 0.0); | 8317 | try testArgs(f80, -1e0, 0.0); |
| 2826 | try testArgs(f80, -1.0, tmin(f80)); | 8318 | try testArgs(f80, -1e0, tmin(f80)); |
| 2827 | try testArgs(f80, -1.0, fmin(f80)); | 8319 | try testArgs(f80, -1e0, fmin(f80)); |
| 2828 | try testArgs(f80, -1.0, 0.1); | 8320 | try testArgs(f80, -1e0, 1e-1); |
| 2829 | try testArgs(f80, -1.0, 1.0); | 8321 | try testArgs(f80, -1e0, 1e0); |
| 2830 | try testArgs(f80, -1.0, 10.0); | 8322 | try testArgs(f80, -1e0, 1e1); |
| 2831 | try testArgs(f80, -1.0, fmax(f80)); | 8323 | try testArgs(f80, -1e0, fmax(f80)); |
| 2832 | try testArgs(f80, -1.0, inf(f80)); | 8324 | try testArgs(f80, -1e0, inf(f80)); |
| 2833 | try testArgs(f80, -1.0, nan(f80)); | 8325 | try testArgs(f80, -1e0, nan(f80)); |
| 2834 | 8326 | ||
| 2835 | try testArgs(f80, -0.1, -nan(f80)); | 8327 | try testArgs(f80, -1e-1, -nan(f80)); |
| 2836 | try testArgs(f80, -0.1, -inf(f80)); | 8328 | try testArgs(f80, -1e-1, -inf(f80)); |
| 2837 | try testArgs(f80, -0.1, -fmax(f80)); | 8329 | try testArgs(f80, -1e-1, -fmax(f80)); |
| 2838 | try testArgs(f80, -0.1, -10.0); | 8330 | try testArgs(f80, -1e-1, -1e1); |
| 2839 | try testArgs(f80, -0.1, -1.0); | 8331 | try testArgs(f80, -1e-1, -1e0); |
| 2840 | try testArgs(f80, -0.1, -0.1); | 8332 | try testArgs(f80, -1e-1, -1e-1); |
| 2841 | try testArgs(f80, -0.1, -fmin(f80)); | 8333 | try testArgs(f80, -1e-1, -fmin(f80)); |
| 2842 | try testArgs(f80, -0.1, -tmin(f80)); | 8334 | try testArgs(f80, -1e-1, -tmin(f80)); |
| 2843 | try testArgs(f80, -0.1, -0.0); | 8335 | try testArgs(f80, -1e-1, -0.0); |
| 2844 | try testArgs(f80, -0.1, 0.0); | 8336 | try testArgs(f80, -1e-1, 0.0); |
| 2845 | try testArgs(f80, -0.1, tmin(f80)); | 8337 | try testArgs(f80, -1e-1, tmin(f80)); |
| 2846 | try testArgs(f80, -0.1, fmin(f80)); | 8338 | try testArgs(f80, -1e-1, fmin(f80)); |
| 2847 | try testArgs(f80, -0.1, 0.1); | 8339 | try testArgs(f80, -1e-1, 1e-1); |
| 2848 | try testArgs(f80, -0.1, 1.0); | 8340 | try testArgs(f80, -1e-1, 1e0); |
| 2849 | try testArgs(f80, -0.1, 10.0); | 8341 | try testArgs(f80, -1e-1, 1e1); |
| 2850 | try testArgs(f80, -0.1, fmax(f80)); | 8342 | try testArgs(f80, -1e-1, fmax(f80)); |
| 2851 | try testArgs(f80, -0.1, inf(f80)); | 8343 | try testArgs(f80, -1e-1, inf(f80)); |
| 2852 | try testArgs(f80, -0.1, nan(f80)); | 8344 | try testArgs(f80, -1e-1, nan(f80)); |
| 2853 | 8345 | ||
| 2854 | try testArgs(f80, -fmin(f80), -nan(f80)); | 8346 | try testArgs(f80, -fmin(f80), -nan(f80)); |
| 2855 | try testArgs(f80, -fmin(f80), -inf(f80)); | 8347 | try testArgs(f80, -fmin(f80), -inf(f80)); |
| 2856 | try testArgs(f80, -fmin(f80), -fmax(f80)); | 8348 | try testArgs(f80, -fmin(f80), -fmax(f80)); |
| 2857 | try testArgs(f80, -fmin(f80), -10.0); | 8349 | try testArgs(f80, -fmin(f80), -1e1); |
| 2858 | try testArgs(f80, -fmin(f80), -1.0); | 8350 | try testArgs(f80, -fmin(f80), -1e0); |
| 2859 | try testArgs(f80, -fmin(f80), -0.1); | 8351 | try testArgs(f80, -fmin(f80), -1e-1); |
| 2860 | try testArgs(f80, -fmin(f80), -fmin(f80)); | 8352 | try testArgs(f80, -fmin(f80), -fmin(f80)); |
| 2861 | try testArgs(f80, -fmin(f80), -tmin(f80)); | 8353 | try testArgs(f80, -fmin(f80), -tmin(f80)); |
| 2862 | try testArgs(f80, -fmin(f80), -0.0); | 8354 | try testArgs(f80, -fmin(f80), -0.0); |
| 2863 | try testArgs(f80, -fmin(f80), 0.0); | 8355 | try testArgs(f80, -fmin(f80), 0.0); |
| 2864 | try testArgs(f80, -fmin(f80), tmin(f80)); | 8356 | try testArgs(f80, -fmin(f80), tmin(f80)); |
| 2865 | try testArgs(f80, -fmin(f80), fmin(f80)); | 8357 | try testArgs(f80, -fmin(f80), fmin(f80)); |
| 2866 | try testArgs(f80, -fmin(f80), 0.1); | 8358 | try testArgs(f80, -fmin(f80), 1e-1); |
| 2867 | try testArgs(f80, -fmin(f80), 1.0); | 8359 | try testArgs(f80, -fmin(f80), 1e0); |
| 2868 | try testArgs(f80, -fmin(f80), 10.0); | 8360 | try testArgs(f80, -fmin(f80), 1e1); |
| 2869 | try testArgs(f80, -fmin(f80), fmax(f80)); | 8361 | try testArgs(f80, -fmin(f80), fmax(f80)); |
| 2870 | try testArgs(f80, -fmin(f80), inf(f80)); | 8362 | try testArgs(f80, -fmin(f80), inf(f80)); |
| 2871 | try testArgs(f80, -fmin(f80), nan(f80)); | 8363 | try testArgs(f80, -fmin(f80), nan(f80)); |
| ... | @@ -2873,18 +8365,18 @@ fn binary(comptime op: anytype, comptime opts: struct { strict: bool = false }) | ... | @@ -2873,18 +8365,18 @@ fn binary(comptime op: anytype, comptime opts: struct { strict: bool = false }) |
| 2873 | try testArgs(f80, -tmin(f80), -nan(f80)); | 8365 | try testArgs(f80, -tmin(f80), -nan(f80)); |
| 2874 | try testArgs(f80, -tmin(f80), -inf(f80)); | 8366 | try testArgs(f80, -tmin(f80), -inf(f80)); |
| 2875 | try testArgs(f80, -tmin(f80), -fmax(f80)); | 8367 | try testArgs(f80, -tmin(f80), -fmax(f80)); |
| 2876 | try testArgs(f80, -tmin(f80), -10.0); | 8368 | try testArgs(f80, -tmin(f80), -1e1); |
| 2877 | try testArgs(f80, -tmin(f80), -1.0); | 8369 | try testArgs(f80, -tmin(f80), -1e0); |
| 2878 | try testArgs(f80, -tmin(f80), -0.1); | 8370 | try testArgs(f80, -tmin(f80), -1e-1); |
| 2879 | try testArgs(f80, -tmin(f80), -fmin(f80)); | 8371 | try testArgs(f80, -tmin(f80), -fmin(f80)); |
| 2880 | try testArgs(f80, -tmin(f80), -tmin(f80)); | 8372 | try testArgs(f80, -tmin(f80), -tmin(f80)); |
| 2881 | try testArgs(f80, -tmin(f80), -0.0); | 8373 | try testArgs(f80, -tmin(f80), -0.0); |
| 2882 | try testArgs(f80, -tmin(f80), 0.0); | 8374 | try testArgs(f80, -tmin(f80), 0.0); |
| 2883 | try testArgs(f80, -tmin(f80), tmin(f80)); | 8375 | try testArgs(f80, -tmin(f80), tmin(f80)); |
| 2884 | try testArgs(f80, -tmin(f80), fmin(f80)); | 8376 | try testArgs(f80, -tmin(f80), fmin(f80)); |
| 2885 | try testArgs(f80, -tmin(f80), 0.1); | 8377 | try testArgs(f80, -tmin(f80), 1e-1); |
| 2886 | try testArgs(f80, -tmin(f80), 1.0); | 8378 | try testArgs(f80, -tmin(f80), 1e0); |
| 2887 | try testArgs(f80, -tmin(f80), 10.0); | 8379 | try testArgs(f80, -tmin(f80), 1e1); |
| 2888 | try testArgs(f80, -tmin(f80), fmax(f80)); | 8380 | try testArgs(f80, -tmin(f80), fmax(f80)); |
| 2889 | try testArgs(f80, -tmin(f80), inf(f80)); | 8381 | try testArgs(f80, -tmin(f80), inf(f80)); |
| 2890 | try testArgs(f80, -tmin(f80), nan(f80)); | 8382 | try testArgs(f80, -tmin(f80), nan(f80)); |
| ... | @@ -2892,18 +8384,18 @@ fn binary(comptime op: anytype, comptime opts: struct { strict: bool = false }) | ... | @@ -2892,18 +8384,18 @@ fn binary(comptime op: anytype, comptime opts: struct { strict: bool = false }) |
| 2892 | try testArgs(f80, -0.0, -nan(f80)); | 8384 | try testArgs(f80, -0.0, -nan(f80)); |
| 2893 | try testArgs(f80, -0.0, -inf(f80)); | 8385 | try testArgs(f80, -0.0, -inf(f80)); |
| 2894 | try testArgs(f80, -0.0, -fmax(f80)); | 8386 | try testArgs(f80, -0.0, -fmax(f80)); |
| 2895 | try testArgs(f80, -0.0, -10.0); | 8387 | try testArgs(f80, -0.0, -1e1); |
| 2896 | try testArgs(f80, -0.0, -1.0); | 8388 | try testArgs(f80, -0.0, -1e0); |
| 2897 | try testArgs(f80, -0.0, -0.1); | 8389 | try testArgs(f80, -0.0, -1e-1); |
| 2898 | try testArgs(f80, -0.0, -fmin(f80)); | 8390 | try testArgs(f80, -0.0, -fmin(f80)); |
| 2899 | try testArgs(f80, -0.0, -tmin(f80)); | 8391 | try testArgs(f80, -0.0, -tmin(f80)); |
| 2900 | try testArgs(f80, -0.0, -0.0); | 8392 | try testArgs(f80, -0.0, -0.0); |
| 2901 | try testArgs(f80, -0.0, 0.0); | 8393 | try testArgs(f80, -0.0, 0.0); |
| 2902 | try testArgs(f80, -0.0, tmin(f80)); | 8394 | try testArgs(f80, -0.0, tmin(f80)); |
| 2903 | try testArgs(f80, -0.0, fmin(f80)); | 8395 | try testArgs(f80, -0.0, fmin(f80)); |
| 2904 | try testArgs(f80, -0.0, 0.1); | 8396 | try testArgs(f80, -0.0, 1e-1); |
| 2905 | try testArgs(f80, -0.0, 1.0); | 8397 | try testArgs(f80, -0.0, 1e0); |
| 2906 | try testArgs(f80, -0.0, 10.0); | 8398 | try testArgs(f80, -0.0, 1e1); |
| 2907 | try testArgs(f80, -0.0, fmax(f80)); | 8399 | try testArgs(f80, -0.0, fmax(f80)); |
| 2908 | try testArgs(f80, -0.0, inf(f80)); | 8400 | try testArgs(f80, -0.0, inf(f80)); |
| 2909 | try testArgs(f80, -0.0, nan(f80)); | 8401 | try testArgs(f80, -0.0, nan(f80)); |
| ... | @@ -2911,18 +8403,18 @@ fn binary(comptime op: anytype, comptime opts: struct { strict: bool = false }) | ... | @@ -2911,18 +8403,18 @@ fn binary(comptime op: anytype, comptime opts: struct { strict: bool = false }) |
| 2911 | try testArgs(f80, 0.0, -nan(f80)); | 8403 | try testArgs(f80, 0.0, -nan(f80)); |
| 2912 | try testArgs(f80, 0.0, -inf(f80)); | 8404 | try testArgs(f80, 0.0, -inf(f80)); |
| 2913 | try testArgs(f80, 0.0, -fmax(f80)); | 8405 | try testArgs(f80, 0.0, -fmax(f80)); |
| 2914 | try testArgs(f80, 0.0, -10.0); | 8406 | try testArgs(f80, 0.0, -1e1); |
| 2915 | try testArgs(f80, 0.0, -1.0); | 8407 | try testArgs(f80, 0.0, -1e0); |
| 2916 | try testArgs(f80, 0.0, -0.1); | 8408 | try testArgs(f80, 0.0, -1e-1); |
| 2917 | try testArgs(f80, 0.0, -fmin(f80)); | 8409 | try testArgs(f80, 0.0, -fmin(f80)); |
| 2918 | try testArgs(f80, 0.0, -tmin(f80)); | 8410 | try testArgs(f80, 0.0, -tmin(f80)); |
| 2919 | try testArgs(f80, 0.0, -0.0); | 8411 | try testArgs(f80, 0.0, -0.0); |
| 2920 | try testArgs(f80, 0.0, 0.0); | 8412 | try testArgs(f80, 0.0, 0.0); |
| 2921 | try testArgs(f80, 0.0, tmin(f80)); | 8413 | try testArgs(f80, 0.0, tmin(f80)); |
| 2922 | try testArgs(f80, 0.0, fmin(f80)); | 8414 | try testArgs(f80, 0.0, fmin(f80)); |
| 2923 | try testArgs(f80, 0.0, 0.1); | 8415 | try testArgs(f80, 0.0, 1e-1); |
| 2924 | try testArgs(f80, 0.0, 1.0); | 8416 | try testArgs(f80, 0.0, 1e0); |
| 2925 | try testArgs(f80, 0.0, 10.0); | 8417 | try testArgs(f80, 0.0, 1e1); |
| 2926 | try testArgs(f80, 0.0, fmax(f80)); | 8418 | try testArgs(f80, 0.0, fmax(f80)); |
| 2927 | try testArgs(f80, 0.0, inf(f80)); | 8419 | try testArgs(f80, 0.0, inf(f80)); |
| 2928 | try testArgs(f80, 0.0, nan(f80)); | 8420 | try testArgs(f80, 0.0, nan(f80)); |
| ... | @@ -2930,18 +8422,18 @@ fn binary(comptime op: anytype, comptime opts: struct { strict: bool = false }) | ... | @@ -2930,18 +8422,18 @@ fn binary(comptime op: anytype, comptime opts: struct { strict: bool = false }) |
| 2930 | try testArgs(f80, tmin(f80), -nan(f80)); | 8422 | try testArgs(f80, tmin(f80), -nan(f80)); |
| 2931 | try testArgs(f80, tmin(f80), -inf(f80)); | 8423 | try testArgs(f80, tmin(f80), -inf(f80)); |
| 2932 | try testArgs(f80, tmin(f80), -fmax(f80)); | 8424 | try testArgs(f80, tmin(f80), -fmax(f80)); |
| 2933 | try testArgs(f80, tmin(f80), -10.0); | 8425 | try testArgs(f80, tmin(f80), -1e1); |
| 2934 | try testArgs(f80, tmin(f80), -1.0); | 8426 | try testArgs(f80, tmin(f80), -1e0); |
| 2935 | try testArgs(f80, tmin(f80), -0.1); | 8427 | try testArgs(f80, tmin(f80), -1e-1); |
| 2936 | try testArgs(f80, tmin(f80), -fmin(f80)); | 8428 | try testArgs(f80, tmin(f80), -fmin(f80)); |
| 2937 | try testArgs(f80, tmin(f80), -tmin(f80)); | 8429 | try testArgs(f80, tmin(f80), -tmin(f80)); |
| 2938 | try testArgs(f80, tmin(f80), -0.0); | 8430 | try testArgs(f80, tmin(f80), -0.0); |
| 2939 | try testArgs(f80, tmin(f80), 0.0); | 8431 | try testArgs(f80, tmin(f80), 0.0); |
| 2940 | try testArgs(f80, tmin(f80), tmin(f80)); | 8432 | try testArgs(f80, tmin(f80), tmin(f80)); |
| 2941 | try testArgs(f80, tmin(f80), fmin(f80)); | 8433 | try testArgs(f80, tmin(f80), fmin(f80)); |
| 2942 | try testArgs(f80, tmin(f80), 0.1); | 8434 | try testArgs(f80, tmin(f80), 1e-1); |
| 2943 | try testArgs(f80, tmin(f80), 1.0); | 8435 | try testArgs(f80, tmin(f80), 1e0); |
| 2944 | try testArgs(f80, tmin(f80), 10.0); | 8436 | try testArgs(f80, tmin(f80), 1e1); |
| 2945 | try testArgs(f80, tmin(f80), fmax(f80)); | 8437 | try testArgs(f80, tmin(f80), fmax(f80)); |
| 2946 | try testArgs(f80, tmin(f80), inf(f80)); | 8438 | try testArgs(f80, tmin(f80), inf(f80)); |
| 2947 | try testArgs(f80, tmin(f80), nan(f80)); | 8439 | try testArgs(f80, tmin(f80), nan(f80)); |
| ... | @@ -2949,94 +8441,94 @@ fn binary(comptime op: anytype, comptime opts: struct { strict: bool = false }) | ... | @@ -2949,94 +8441,94 @@ fn binary(comptime op: anytype, comptime opts: struct { strict: bool = false }) |
| 2949 | try testArgs(f80, fmin(f80), -nan(f80)); | 8441 | try testArgs(f80, fmin(f80), -nan(f80)); |
| 2950 | try testArgs(f80, fmin(f80), -inf(f80)); | 8442 | try testArgs(f80, fmin(f80), -inf(f80)); |
| 2951 | try testArgs(f80, fmin(f80), -fmax(f80)); | 8443 | try testArgs(f80, fmin(f80), -fmax(f80)); |
| 2952 | try testArgs(f80, fmin(f80), -10.0); | 8444 | try testArgs(f80, fmin(f80), -1e1); |
| 2953 | try testArgs(f80, fmin(f80), -1.0); | 8445 | try testArgs(f80, fmin(f80), -1e0); |
| 2954 | try testArgs(f80, fmin(f80), -0.1); | 8446 | try testArgs(f80, fmin(f80), -1e-1); |
| 2955 | try testArgs(f80, fmin(f80), -fmin(f80)); | 8447 | try testArgs(f80, fmin(f80), -fmin(f80)); |
| 2956 | try testArgs(f80, fmin(f80), -tmin(f80)); | 8448 | try testArgs(f80, fmin(f80), -tmin(f80)); |
| 2957 | try testArgs(f80, fmin(f80), -0.0); | 8449 | try testArgs(f80, fmin(f80), -0.0); |
| 2958 | try testArgs(f80, fmin(f80), 0.0); | 8450 | try testArgs(f80, fmin(f80), 0.0); |
| 2959 | try testArgs(f80, fmin(f80), tmin(f80)); | 8451 | try testArgs(f80, fmin(f80), tmin(f80)); |
| 2960 | try testArgs(f80, fmin(f80), fmin(f80)); | 8452 | try testArgs(f80, fmin(f80), fmin(f80)); |
| 2961 | try testArgs(f80, fmin(f80), 0.1); | 8453 | try testArgs(f80, fmin(f80), 1e-1); |
| 2962 | try testArgs(f80, fmin(f80), 1.0); | 8454 | try testArgs(f80, fmin(f80), 1e0); |
| 2963 | try testArgs(f80, fmin(f80), 10.0); | 8455 | try testArgs(f80, fmin(f80), 1e1); |
| 2964 | try testArgs(f80, fmin(f80), fmax(f80)); | 8456 | try testArgs(f80, fmin(f80), fmax(f80)); |
| 2965 | try testArgs(f80, fmin(f80), inf(f80)); | 8457 | try testArgs(f80, fmin(f80), inf(f80)); |
| 2966 | try testArgs(f80, fmin(f80), nan(f80)); | 8458 | try testArgs(f80, fmin(f80), nan(f80)); |
| 2967 | 8459 | ||
| 2968 | try testArgs(f80, 0.1, -nan(f80)); | 8460 | try testArgs(f80, 1e-1, -nan(f80)); |
| 2969 | try testArgs(f80, 0.1, -inf(f80)); | 8461 | try testArgs(f80, 1e-1, -inf(f80)); |
| 2970 | try testArgs(f80, 0.1, -fmax(f80)); | 8462 | try testArgs(f80, 1e-1, -fmax(f80)); |
| 2971 | try testArgs(f80, 0.1, -10.0); | 8463 | try testArgs(f80, 1e-1, -1e1); |
| 2972 | try testArgs(f80, 0.1, -1.0); | 8464 | try testArgs(f80, 1e-1, -1e0); |
| 2973 | try testArgs(f80, 0.1, -0.1); | 8465 | try testArgs(f80, 1e-1, -1e-1); |
| 2974 | try testArgs(f80, 0.1, -fmin(f80)); | 8466 | try testArgs(f80, 1e-1, -fmin(f80)); |
| 2975 | try testArgs(f80, 0.1, -tmin(f80)); | 8467 | try testArgs(f80, 1e-1, -tmin(f80)); |
| 2976 | try testArgs(f80, 0.1, -0.0); | 8468 | try testArgs(f80, 1e-1, -0.0); |
| 2977 | try testArgs(f80, 0.1, 0.0); | 8469 | try testArgs(f80, 1e-1, 0.0); |
| 2978 | try testArgs(f80, 0.1, tmin(f80)); | 8470 | try testArgs(f80, 1e-1, tmin(f80)); |
| 2979 | try testArgs(f80, 0.1, fmin(f80)); | 8471 | try testArgs(f80, 1e-1, fmin(f80)); |
| 2980 | try testArgs(f80, 0.1, 0.1); | 8472 | try testArgs(f80, 1e-1, 1e-1); |
| 2981 | try testArgs(f80, 0.1, 1.0); | 8473 | try testArgs(f80, 1e-1, 1e0); |
| 2982 | try testArgs(f80, 0.1, 10.0); | 8474 | try testArgs(f80, 1e-1, 1e1); |
| 2983 | try testArgs(f80, 0.1, fmax(f80)); | 8475 | try testArgs(f80, 1e-1, fmax(f80)); |
| 2984 | try testArgs(f80, 0.1, inf(f80)); | 8476 | try testArgs(f80, 1e-1, inf(f80)); |
| 2985 | try testArgs(f80, 0.1, nan(f80)); | 8477 | try testArgs(f80, 1e-1, nan(f80)); |
| 2986 | 8478 | ||
| 2987 | try testArgs(f80, 1.0, -nan(f80)); | 8479 | try testArgs(f80, 1e0, -nan(f80)); |
| 2988 | try testArgs(f80, 1.0, -inf(f80)); | 8480 | try testArgs(f80, 1e0, -inf(f80)); |
| 2989 | try testArgs(f80, 1.0, -fmax(f80)); | 8481 | try testArgs(f80, 1e0, -fmax(f80)); |
| 2990 | try testArgs(f80, 1.0, -10.0); | 8482 | try testArgs(f80, 1e0, -1e1); |
| 2991 | try testArgs(f80, 1.0, -1.0); | 8483 | try testArgs(f80, 1e0, -1e0); |
| 2992 | try testArgs(f80, 1.0, -0.1); | 8484 | try testArgs(f80, 1e0, -1e-1); |
| 2993 | try testArgs(f80, 1.0, -fmin(f80)); | 8485 | try testArgs(f80, 1e0, -fmin(f80)); |
| 2994 | try testArgs(f80, 1.0, -tmin(f80)); | 8486 | try testArgs(f80, 1e0, -tmin(f80)); |
| 2995 | try testArgs(f80, 1.0, -0.0); | 8487 | try testArgs(f80, 1e0, -0.0); |
| 2996 | try testArgs(f80, 1.0, 0.0); | 8488 | try testArgs(f80, 1e0, 0.0); |
| 2997 | try testArgs(f80, 1.0, tmin(f80)); | 8489 | try testArgs(f80, 1e0, tmin(f80)); |
| 2998 | try testArgs(f80, 1.0, fmin(f80)); | 8490 | try testArgs(f80, 1e0, fmin(f80)); |
| 2999 | try testArgs(f80, 1.0, 0.1); | 8491 | try testArgs(f80, 1e0, 1e-1); |
| 3000 | try testArgs(f80, 1.0, 1.0); | 8492 | try testArgs(f80, 1e0, 1e0); |
| 3001 | try testArgs(f80, 1.0, 10.0); | 8493 | try testArgs(f80, 1e0, 1e1); |
| 3002 | try testArgs(f80, 1.0, fmax(f80)); | 8494 | try testArgs(f80, 1e0, fmax(f80)); |
| 3003 | try testArgs(f80, 1.0, inf(f80)); | 8495 | try testArgs(f80, 1e0, inf(f80)); |
| 3004 | try testArgs(f80, 1.0, nan(f80)); | 8496 | try testArgs(f80, 1e0, nan(f80)); |
| 3005 | 8497 | ||
| 3006 | try testArgs(f80, 10.0, -nan(f80)); | 8498 | try testArgs(f80, 1e1, -nan(f80)); |
| 3007 | try testArgs(f80, 10.0, -inf(f80)); | 8499 | try testArgs(f80, 1e1, -inf(f80)); |
| 3008 | try testArgs(f80, 10.0, -fmax(f80)); | 8500 | try testArgs(f80, 1e1, -fmax(f80)); |
| 3009 | try testArgs(f80, 10.0, -10.0); | 8501 | try testArgs(f80, 1e1, -1e1); |
| 3010 | try testArgs(f80, 10.0, -1.0); | 8502 | try testArgs(f80, 1e1, -1e0); |
| 3011 | try testArgs(f80, 10.0, -0.1); | 8503 | try testArgs(f80, 1e1, -1e-1); |
| 3012 | try testArgs(f80, 10.0, -fmin(f80)); | 8504 | try testArgs(f80, 1e1, -fmin(f80)); |
| 3013 | try testArgs(f80, 10.0, -tmin(f80)); | 8505 | try testArgs(f80, 1e1, -tmin(f80)); |
| 3014 | try testArgs(f80, 10.0, -0.0); | 8506 | try testArgs(f80, 1e1, -0.0); |
| 3015 | try testArgs(f80, 10.0, 0.0); | 8507 | try testArgs(f80, 1e1, 0.0); |
| 3016 | try testArgs(f80, 10.0, tmin(f80)); | 8508 | try testArgs(f80, 1e1, tmin(f80)); |
| 3017 | try testArgs(f80, 10.0, fmin(f80)); | 8509 | try testArgs(f80, 1e1, fmin(f80)); |
| 3018 | try testArgs(f80, 10.0, 0.1); | 8510 | try testArgs(f80, 1e1, 1e-1); |
| 3019 | try testArgs(f80, 10.0, 1.0); | 8511 | try testArgs(f80, 1e1, 1e0); |
| 3020 | try testArgs(f80, 10.0, 10.0); | 8512 | try testArgs(f80, 1e1, 1e1); |
| 3021 | try testArgs(f80, 10.0, fmax(f80)); | 8513 | try testArgs(f80, 1e1, fmax(f80)); |
| 3022 | try testArgs(f80, 10.0, inf(f80)); | 8514 | try testArgs(f80, 1e1, inf(f80)); |
| 3023 | try testArgs(f80, 10.0, nan(f80)); | 8515 | try testArgs(f80, 1e1, nan(f80)); |
| 3024 | 8516 | ||
| 3025 | try testArgs(f80, fmax(f80), -nan(f80)); | 8517 | try testArgs(f80, fmax(f80), -nan(f80)); |
| 3026 | try testArgs(f80, fmax(f80), -inf(f80)); | 8518 | try testArgs(f80, fmax(f80), -inf(f80)); |
| 3027 | try testArgs(f80, fmax(f80), -fmax(f80)); | 8519 | try testArgs(f80, fmax(f80), -fmax(f80)); |
| 3028 | try testArgs(f80, fmax(f80), -10.0); | 8520 | try testArgs(f80, fmax(f80), -1e1); |
| 3029 | try testArgs(f80, fmax(f80), -1.0); | 8521 | try testArgs(f80, fmax(f80), -1e0); |
| 3030 | try testArgs(f80, fmax(f80), -0.1); | 8522 | try testArgs(f80, fmax(f80), -1e-1); |
| 3031 | try testArgs(f80, fmax(f80), -fmin(f80)); | 8523 | try testArgs(f80, fmax(f80), -fmin(f80)); |
| 3032 | try testArgs(f80, fmax(f80), -tmin(f80)); | 8524 | try testArgs(f80, fmax(f80), -tmin(f80)); |
| 3033 | try testArgs(f80, fmax(f80), -0.0); | 8525 | try testArgs(f80, fmax(f80), -0.0); |
| 3034 | try testArgs(f80, fmax(f80), 0.0); | 8526 | try testArgs(f80, fmax(f80), 0.0); |
| 3035 | try testArgs(f80, fmax(f80), tmin(f80)); | 8527 | try testArgs(f80, fmax(f80), tmin(f80)); |
| 3036 | try testArgs(f80, fmax(f80), fmin(f80)); | 8528 | try testArgs(f80, fmax(f80), fmin(f80)); |
| 3037 | try testArgs(f80, fmax(f80), 0.1); | 8529 | try testArgs(f80, fmax(f80), 1e-1); |
| 3038 | try testArgs(f80, fmax(f80), 1.0); | 8530 | try testArgs(f80, fmax(f80), 1e0); |
| 3039 | try testArgs(f80, fmax(f80), 10.0); | 8531 | try testArgs(f80, fmax(f80), 1e1); |
| 3040 | try testArgs(f80, fmax(f80), fmax(f80)); | 8532 | try testArgs(f80, fmax(f80), fmax(f80)); |
| 3041 | try testArgs(f80, fmax(f80), inf(f80)); | 8533 | try testArgs(f80, fmax(f80), inf(f80)); |
| 3042 | try testArgs(f80, fmax(f80), nan(f80)); | 8534 | try testArgs(f80, fmax(f80), nan(f80)); |
| ... | @@ -3044,18 +8536,18 @@ fn binary(comptime op: anytype, comptime opts: struct { strict: bool = false }) | ... | @@ -3044,18 +8536,18 @@ fn binary(comptime op: anytype, comptime opts: struct { strict: bool = false }) |
| 3044 | try testArgs(f80, inf(f80), -nan(f80)); | 8536 | try testArgs(f80, inf(f80), -nan(f80)); |
| 3045 | try testArgs(f80, inf(f80), -inf(f80)); | 8537 | try testArgs(f80, inf(f80), -inf(f80)); |
| 3046 | try testArgs(f80, inf(f80), -fmax(f80)); | 8538 | try testArgs(f80, inf(f80), -fmax(f80)); |
| 3047 | try testArgs(f80, inf(f80), -10.0); | 8539 | try testArgs(f80, inf(f80), -1e1); |
| 3048 | try testArgs(f80, inf(f80), -1.0); | 8540 | try testArgs(f80, inf(f80), -1e0); |
| 3049 | try testArgs(f80, inf(f80), -0.1); | 8541 | try testArgs(f80, inf(f80), -1e-1); |
| 3050 | try testArgs(f80, inf(f80), -fmin(f80)); | 8542 | try testArgs(f80, inf(f80), -fmin(f80)); |
| 3051 | try testArgs(f80, inf(f80), -tmin(f80)); | 8543 | try testArgs(f80, inf(f80), -tmin(f80)); |
| 3052 | try testArgs(f80, inf(f80), -0.0); | 8544 | try testArgs(f80, inf(f80), -0.0); |
| 3053 | try testArgs(f80, inf(f80), 0.0); | 8545 | try testArgs(f80, inf(f80), 0.0); |
| 3054 | try testArgs(f80, inf(f80), tmin(f80)); | 8546 | try testArgs(f80, inf(f80), tmin(f80)); |
| 3055 | try testArgs(f80, inf(f80), fmin(f80)); | 8547 | try testArgs(f80, inf(f80), fmin(f80)); |
| 3056 | try testArgs(f80, inf(f80), 0.1); | 8548 | try testArgs(f80, inf(f80), 1e-1); |
| 3057 | try testArgs(f80, inf(f80), 1.0); | 8549 | try testArgs(f80, inf(f80), 1e0); |
| 3058 | try testArgs(f80, inf(f80), 10.0); | 8550 | try testArgs(f80, inf(f80), 1e1); |
| 3059 | try testArgs(f80, inf(f80), fmax(f80)); | 8551 | try testArgs(f80, inf(f80), fmax(f80)); |
| 3060 | try testArgs(f80, inf(f80), inf(f80)); | 8552 | try testArgs(f80, inf(f80), inf(f80)); |
| 3061 | try testArgs(f80, inf(f80), nan(f80)); | 8553 | try testArgs(f80, inf(f80), nan(f80)); |
| ... | @@ -3063,18 +8555,18 @@ fn binary(comptime op: anytype, comptime opts: struct { strict: bool = false }) | ... | @@ -3063,18 +8555,18 @@ fn binary(comptime op: anytype, comptime opts: struct { strict: bool = false }) |
| 3063 | try testArgs(f80, nan(f80), -nan(f80)); | 8555 | try testArgs(f80, nan(f80), -nan(f80)); |
| 3064 | try testArgs(f80, nan(f80), -inf(f80)); | 8556 | try testArgs(f80, nan(f80), -inf(f80)); |
| 3065 | try testArgs(f80, nan(f80), -fmax(f80)); | 8557 | try testArgs(f80, nan(f80), -fmax(f80)); |
| 3066 | try testArgs(f80, nan(f80), -10.0); | 8558 | try testArgs(f80, nan(f80), -1e1); |
| 3067 | try testArgs(f80, nan(f80), -1.0); | 8559 | try testArgs(f80, nan(f80), -1e0); |
| 3068 | try testArgs(f80, nan(f80), -0.1); | 8560 | try testArgs(f80, nan(f80), -1e-1); |
| 3069 | try testArgs(f80, nan(f80), -fmin(f80)); | 8561 | try testArgs(f80, nan(f80), -fmin(f80)); |
| 3070 | try testArgs(f80, nan(f80), -tmin(f80)); | 8562 | try testArgs(f80, nan(f80), -tmin(f80)); |
| 3071 | try testArgs(f80, nan(f80), -0.0); | 8563 | try testArgs(f80, nan(f80), -0.0); |
| 3072 | try testArgs(f80, nan(f80), 0.0); | 8564 | try testArgs(f80, nan(f80), 0.0); |
| 3073 | try testArgs(f80, nan(f80), tmin(f80)); | 8565 | try testArgs(f80, nan(f80), tmin(f80)); |
| 3074 | try testArgs(f80, nan(f80), fmin(f80)); | 8566 | try testArgs(f80, nan(f80), fmin(f80)); |
| 3075 | try testArgs(f80, nan(f80), 0.1); | 8567 | try testArgs(f80, nan(f80), 1e-1); |
| 3076 | try testArgs(f80, nan(f80), 1.0); | 8568 | try testArgs(f80, nan(f80), 1e0); |
| 3077 | try testArgs(f80, nan(f80), 10.0); | 8569 | try testArgs(f80, nan(f80), 1e1); |
| 3078 | try testArgs(f80, nan(f80), fmax(f80)); | 8570 | try testArgs(f80, nan(f80), fmax(f80)); |
| 3079 | try testArgs(f80, nan(f80), inf(f80)); | 8571 | try testArgs(f80, nan(f80), inf(f80)); |
| 3080 | try testArgs(f80, nan(f80), nan(f80)); | 8572 | try testArgs(f80, nan(f80), nan(f80)); |
| ... | @@ -3082,18 +8574,18 @@ fn binary(comptime op: anytype, comptime opts: struct { strict: bool = false }) | ... | @@ -3082,18 +8574,18 @@ fn binary(comptime op: anytype, comptime opts: struct { strict: bool = false }) |
| 3082 | try testArgs(f128, -nan(f128), -nan(f128)); | 8574 | try testArgs(f128, -nan(f128), -nan(f128)); |
| 3083 | try testArgs(f128, -nan(f128), -inf(f128)); | 8575 | try testArgs(f128, -nan(f128), -inf(f128)); |
| 3084 | try testArgs(f128, -nan(f128), -fmax(f128)); | 8576 | try testArgs(f128, -nan(f128), -fmax(f128)); |
| 3085 | try testArgs(f128, -nan(f128), -10.0); | 8577 | try testArgs(f128, -nan(f128), -1e1); |
| 3086 | try testArgs(f128, -nan(f128), -1.0); | 8578 | try testArgs(f128, -nan(f128), -1e0); |
| 3087 | try testArgs(f128, -nan(f128), -0.1); | 8579 | try testArgs(f128, -nan(f128), -1e-1); |
| 3088 | try testArgs(f128, -nan(f128), -fmin(f128)); | 8580 | try testArgs(f128, -nan(f128), -fmin(f128)); |
| 3089 | try testArgs(f128, -nan(f128), -tmin(f128)); | 8581 | try testArgs(f128, -nan(f128), -tmin(f128)); |
| 3090 | try testArgs(f128, -nan(f128), -0.0); | 8582 | try testArgs(f128, -nan(f128), -0.0); |
| 3091 | try testArgs(f128, -nan(f128), 0.0); | 8583 | try testArgs(f128, -nan(f128), 0.0); |
| 3092 | try testArgs(f128, -nan(f128), tmin(f128)); | 8584 | try testArgs(f128, -nan(f128), tmin(f128)); |
| 3093 | try testArgs(f128, -nan(f128), fmin(f128)); | 8585 | try testArgs(f128, -nan(f128), fmin(f128)); |
| 3094 | try testArgs(f128, -nan(f128), 0.1); | 8586 | try testArgs(f128, -nan(f128), 1e-1); |
| 3095 | try testArgs(f128, -nan(f128), 1.0); | 8587 | try testArgs(f128, -nan(f128), 1e0); |
| 3096 | try testArgs(f128, -nan(f128), 10.0); | 8588 | try testArgs(f128, -nan(f128), 1e1); |
| 3097 | try testArgs(f128, -nan(f128), fmax(f128)); | 8589 | try testArgs(f128, -nan(f128), fmax(f128)); |
| 3098 | try testArgs(f128, -nan(f128), inf(f128)); | 8590 | try testArgs(f128, -nan(f128), inf(f128)); |
| 3099 | try testArgs(f128, -nan(f128), nan(f128)); | 8591 | try testArgs(f128, -nan(f128), nan(f128)); |
| ... | @@ -3101,18 +8593,18 @@ fn binary(comptime op: anytype, comptime opts: struct { strict: bool = false }) | ... | @@ -3101,18 +8593,18 @@ fn binary(comptime op: anytype, comptime opts: struct { strict: bool = false }) |
| 3101 | try testArgs(f128, -inf(f128), -nan(f128)); | 8593 | try testArgs(f128, -inf(f128), -nan(f128)); |
| 3102 | try testArgs(f128, -inf(f128), -inf(f128)); | 8594 | try testArgs(f128, -inf(f128), -inf(f128)); |
| 3103 | try testArgs(f128, -inf(f128), -fmax(f128)); | 8595 | try testArgs(f128, -inf(f128), -fmax(f128)); |
| 3104 | try testArgs(f128, -inf(f128), -10.0); | 8596 | try testArgs(f128, -inf(f128), -1e1); |
| 3105 | try testArgs(f128, -inf(f128), -1.0); | 8597 | try testArgs(f128, -inf(f128), -1e0); |
| 3106 | try testArgs(f128, -inf(f128), -0.1); | 8598 | try testArgs(f128, -inf(f128), -1e-1); |
| 3107 | try testArgs(f128, -inf(f128), -fmin(f128)); | 8599 | try testArgs(f128, -inf(f128), -fmin(f128)); |
| 3108 | try testArgs(f128, -inf(f128), -tmin(f128)); | 8600 | try testArgs(f128, -inf(f128), -tmin(f128)); |
| 3109 | try testArgs(f128, -inf(f128), -0.0); | 8601 | try testArgs(f128, -inf(f128), -0.0); |
| 3110 | try testArgs(f128, -inf(f128), 0.0); | 8602 | try testArgs(f128, -inf(f128), 0.0); |
| 3111 | try testArgs(f128, -inf(f128), tmin(f128)); | 8603 | try testArgs(f128, -inf(f128), tmin(f128)); |
| 3112 | try testArgs(f128, -inf(f128), fmin(f128)); | 8604 | try testArgs(f128, -inf(f128), fmin(f128)); |
| 3113 | try testArgs(f128, -inf(f128), 0.1); | 8605 | try testArgs(f128, -inf(f128), 1e-1); |
| 3114 | try testArgs(f128, -inf(f128), 1.0); | 8606 | try testArgs(f128, -inf(f128), 1e0); |
| 3115 | try testArgs(f128, -inf(f128), 10.0); | 8607 | try testArgs(f128, -inf(f128), 1e1); |
| 3116 | try testArgs(f128, -inf(f128), fmax(f128)); | 8608 | try testArgs(f128, -inf(f128), fmax(f128)); |
| 3117 | try testArgs(f128, -inf(f128), inf(f128)); | 8609 | try testArgs(f128, -inf(f128), inf(f128)); |
| 3118 | try testArgs(f128, -inf(f128), nan(f128)); | 8610 | try testArgs(f128, -inf(f128), nan(f128)); |
| ... | @@ -3120,94 +8612,94 @@ fn binary(comptime op: anytype, comptime opts: struct { strict: bool = false }) | ... | @@ -3120,94 +8612,94 @@ fn binary(comptime op: anytype, comptime opts: struct { strict: bool = false }) |
| 3120 | try testArgs(f128, -fmax(f128), -nan(f128)); | 8612 | try testArgs(f128, -fmax(f128), -nan(f128)); |
| 3121 | try testArgs(f128, -fmax(f128), -inf(f128)); | 8613 | try testArgs(f128, -fmax(f128), -inf(f128)); |
| 3122 | try testArgs(f128, -fmax(f128), -fmax(f128)); | 8614 | try testArgs(f128, -fmax(f128), -fmax(f128)); |
| 3123 | try testArgs(f128, -fmax(f128), -10.0); | 8615 | try testArgs(f128, -fmax(f128), -1e1); |
| 3124 | try testArgs(f128, -fmax(f128), -1.0); | 8616 | try testArgs(f128, -fmax(f128), -1e0); |
| 3125 | try testArgs(f128, -fmax(f128), -0.1); | 8617 | try testArgs(f128, -fmax(f128), -1e-1); |
| 3126 | try testArgs(f128, -fmax(f128), -fmin(f128)); | 8618 | try testArgs(f128, -fmax(f128), -fmin(f128)); |
| 3127 | try testArgs(f128, -fmax(f128), -tmin(f128)); | 8619 | try testArgs(f128, -fmax(f128), -tmin(f128)); |
| 3128 | try testArgs(f128, -fmax(f128), -0.0); | 8620 | try testArgs(f128, -fmax(f128), -0.0); |
| 3129 | try testArgs(f128, -fmax(f128), 0.0); | 8621 | try testArgs(f128, -fmax(f128), 0.0); |
| 3130 | try testArgs(f128, -fmax(f128), tmin(f128)); | 8622 | try testArgs(f128, -fmax(f128), tmin(f128)); |
| 3131 | try testArgs(f128, -fmax(f128), fmin(f128)); | 8623 | try testArgs(f128, -fmax(f128), fmin(f128)); |
| 3132 | try testArgs(f128, -fmax(f128), 0.1); | 8624 | try testArgs(f128, -fmax(f128), 1e-1); |
| 3133 | try testArgs(f128, -fmax(f128), 1.0); | 8625 | try testArgs(f128, -fmax(f128), 1e0); |
| 3134 | try testArgs(f128, -fmax(f128), 10.0); | 8626 | try testArgs(f128, -fmax(f128), 1e1); |
| 3135 | try testArgs(f128, -fmax(f128), fmax(f128)); | 8627 | try testArgs(f128, -fmax(f128), fmax(f128)); |
| 3136 | try testArgs(f128, -fmax(f128), inf(f128)); | 8628 | try testArgs(f128, -fmax(f128), inf(f128)); |
| 3137 | try testArgs(f128, -fmax(f128), nan(f128)); | 8629 | try testArgs(f128, -fmax(f128), nan(f128)); |
| 3138 | 8630 | ||
| 3139 | try testArgs(f128, -10.0, -nan(f128)); | 8631 | try testArgs(f128, -1e1, -nan(f128)); |
| 3140 | try testArgs(f128, -10.0, -inf(f128)); | 8632 | try testArgs(f128, -1e1, -inf(f128)); |
| 3141 | try testArgs(f128, -10.0, -fmax(f128)); | 8633 | try testArgs(f128, -1e1, -fmax(f128)); |
| 3142 | try testArgs(f128, -10.0, -10.0); | 8634 | try testArgs(f128, -1e1, -1e1); |
| 3143 | try testArgs(f128, -10.0, -1.0); | 8635 | try testArgs(f128, -1e1, -1e0); |
| 3144 | try testArgs(f128, -10.0, -0.1); | 8636 | try testArgs(f128, -1e1, -1e-1); |
| 3145 | try testArgs(f128, -10.0, -fmin(f128)); | 8637 | try testArgs(f128, -1e1, -fmin(f128)); |
| 3146 | try testArgs(f128, -10.0, -tmin(f128)); | 8638 | try testArgs(f128, -1e1, -tmin(f128)); |
| 3147 | try testArgs(f128, -10.0, -0.0); | 8639 | try testArgs(f128, -1e1, -0.0); |
| 3148 | try testArgs(f128, -10.0, 0.0); | 8640 | try testArgs(f128, -1e1, 0.0); |
| 3149 | try testArgs(f128, -10.0, tmin(f128)); | 8641 | try testArgs(f128, -1e1, tmin(f128)); |
| 3150 | try testArgs(f128, -10.0, fmin(f128)); | 8642 | try testArgs(f128, -1e1, fmin(f128)); |
| 3151 | try testArgs(f128, -10.0, 0.1); | 8643 | try testArgs(f128, -1e1, 1e-1); |
| 3152 | try testArgs(f128, -10.0, 1.0); | 8644 | try testArgs(f128, -1e1, 1e0); |
| 3153 | try testArgs(f128, -10.0, 10.0); | 8645 | try testArgs(f128, -1e1, 1e1); |
| 3154 | try testArgs(f128, -10.0, fmax(f128)); | 8646 | try testArgs(f128, -1e1, fmax(f128)); |
| 3155 | try testArgs(f128, -10.0, inf(f128)); | 8647 | try testArgs(f128, -1e1, inf(f128)); |
| 3156 | try testArgs(f128, -10.0, nan(f128)); | 8648 | try testArgs(f128, -1e1, nan(f128)); |
| 3157 | 8649 | ||
| 3158 | try testArgs(f128, -1.0, -nan(f128)); | 8650 | try testArgs(f128, -1e0, -nan(f128)); |
| 3159 | try testArgs(f128, -1.0, -inf(f128)); | 8651 | try testArgs(f128, -1e0, -inf(f128)); |
| 3160 | try testArgs(f128, -1.0, -fmax(f128)); | 8652 | try testArgs(f128, -1e0, -fmax(f128)); |
| 3161 | try testArgs(f128, -1.0, -10.0); | 8653 | try testArgs(f128, -1e0, -1e1); |
| 3162 | try testArgs(f128, -1.0, -1.0); | 8654 | try testArgs(f128, -1e0, -1e0); |
| 3163 | try testArgs(f128, -1.0, -0.1); | 8655 | try testArgs(f128, -1e0, -1e-1); |
| 3164 | try testArgs(f128, -1.0, -fmin(f128)); | 8656 | try testArgs(f128, -1e0, -fmin(f128)); |
| 3165 | try testArgs(f128, -1.0, -tmin(f128)); | 8657 | try testArgs(f128, -1e0, -tmin(f128)); |
| 3166 | try testArgs(f128, -1.0, -0.0); | 8658 | try testArgs(f128, -1e0, -0.0); |
| 3167 | try testArgs(f128, -1.0, 0.0); | 8659 | try testArgs(f128, -1e0, 0.0); |
| 3168 | try testArgs(f128, -1.0, tmin(f128)); | 8660 | try testArgs(f128, -1e0, tmin(f128)); |
| 3169 | try testArgs(f128, -1.0, fmin(f128)); | 8661 | try testArgs(f128, -1e0, fmin(f128)); |
| 3170 | try testArgs(f128, -1.0, 0.1); | 8662 | try testArgs(f128, -1e0, 1e-1); |
| 3171 | try testArgs(f128, -1.0, 1.0); | 8663 | try testArgs(f128, -1e0, 1e0); |
| 3172 | try testArgs(f128, -1.0, 10.0); | 8664 | try testArgs(f128, -1e0, 1e1); |
| 3173 | try testArgs(f128, -1.0, fmax(f128)); | 8665 | try testArgs(f128, -1e0, fmax(f128)); |
| 3174 | try testArgs(f128, -1.0, inf(f128)); | 8666 | try testArgs(f128, -1e0, inf(f128)); |
| 3175 | try testArgs(f128, -1.0, nan(f128)); | 8667 | try testArgs(f128, -1e0, nan(f128)); |
| 3176 | 8668 | ||
| 3177 | try testArgs(f128, -0.1, -nan(f128)); | 8669 | try testArgs(f128, -1e-1, -nan(f128)); |
| 3178 | try testArgs(f128, -0.1, -inf(f128)); | 8670 | try testArgs(f128, -1e-1, -inf(f128)); |
| 3179 | try testArgs(f128, -0.1, -fmax(f128)); | 8671 | try testArgs(f128, -1e-1, -fmax(f128)); |
| 3180 | try testArgs(f128, -0.1, -10.0); | 8672 | try testArgs(f128, -1e-1, -1e1); |
| 3181 | try testArgs(f128, -0.1, -1.0); | 8673 | try testArgs(f128, -1e-1, -1e0); |
| 3182 | try testArgs(f128, -0.1, -0.1); | 8674 | try testArgs(f128, -1e-1, -1e-1); |
| 3183 | try testArgs(f128, -0.1, -fmin(f128)); | 8675 | try testArgs(f128, -1e-1, -fmin(f128)); |
| 3184 | try testArgs(f128, -0.1, -tmin(f128)); | 8676 | try testArgs(f128, -1e-1, -tmin(f128)); |
| 3185 | try testArgs(f128, -0.1, -0.0); | 8677 | try testArgs(f128, -1e-1, -0.0); |
| 3186 | try testArgs(f128, -0.1, 0.0); | 8678 | try testArgs(f128, -1e-1, 0.0); |
| 3187 | try testArgs(f128, -0.1, tmin(f128)); | 8679 | try testArgs(f128, -1e-1, tmin(f128)); |
| 3188 | try testArgs(f128, -0.1, fmin(f128)); | 8680 | try testArgs(f128, -1e-1, fmin(f128)); |
| 3189 | try testArgs(f128, -0.1, 0.1); | 8681 | try testArgs(f128, -1e-1, 1e-1); |
| 3190 | try testArgs(f128, -0.1, 1.0); | 8682 | try testArgs(f128, -1e-1, 1e0); |
| 3191 | try testArgs(f128, -0.1, 10.0); | 8683 | try testArgs(f128, -1e-1, 1e1); |
| 3192 | try testArgs(f128, -0.1, fmax(f128)); | 8684 | try testArgs(f128, -1e-1, fmax(f128)); |
| 3193 | try testArgs(f128, -0.1, inf(f128)); | 8685 | try testArgs(f128, -1e-1, inf(f128)); |
| 3194 | try testArgs(f128, -0.1, nan(f128)); | 8686 | try testArgs(f128, -1e-1, nan(f128)); |
| 3195 | 8687 | ||
| 3196 | try testArgs(f128, -fmin(f128), -nan(f128)); | 8688 | try testArgs(f128, -fmin(f128), -nan(f128)); |
| 3197 | try testArgs(f128, -fmin(f128), -inf(f128)); | 8689 | try testArgs(f128, -fmin(f128), -inf(f128)); |
| 3198 | try testArgs(f128, -fmin(f128), -fmax(f128)); | 8690 | try testArgs(f128, -fmin(f128), -fmax(f128)); |
| 3199 | try testArgs(f128, -fmin(f128), -10.0); | 8691 | try testArgs(f128, -fmin(f128), -1e1); |
| 3200 | try testArgs(f128, -fmin(f128), -1.0); | 8692 | try testArgs(f128, -fmin(f128), -1e0); |
| 3201 | try testArgs(f128, -fmin(f128), -0.1); | 8693 | try testArgs(f128, -fmin(f128), -1e-1); |
| 3202 | try testArgs(f128, -fmin(f128), -fmin(f128)); | 8694 | try testArgs(f128, -fmin(f128), -fmin(f128)); |
| 3203 | try testArgs(f128, -fmin(f128), -tmin(f128)); | 8695 | try testArgs(f128, -fmin(f128), -tmin(f128)); |
| 3204 | try testArgs(f128, -fmin(f128), -0.0); | 8696 | try testArgs(f128, -fmin(f128), -0.0); |
| 3205 | try testArgs(f128, -fmin(f128), 0.0); | 8697 | try testArgs(f128, -fmin(f128), 0.0); |
| 3206 | try testArgs(f128, -fmin(f128), tmin(f128)); | 8698 | try testArgs(f128, -fmin(f128), tmin(f128)); |
| 3207 | try testArgs(f128, -fmin(f128), fmin(f128)); | 8699 | try testArgs(f128, -fmin(f128), fmin(f128)); |
| 3208 | try testArgs(f128, -fmin(f128), 0.1); | 8700 | try testArgs(f128, -fmin(f128), 1e-1); |
| 3209 | try testArgs(f128, -fmin(f128), 1.0); | 8701 | try testArgs(f128, -fmin(f128), 1e0); |
| 3210 | try testArgs(f128, -fmin(f128), 10.0); | 8702 | try testArgs(f128, -fmin(f128), 1e1); |
| 3211 | try testArgs(f128, -fmin(f128), fmax(f128)); | 8703 | try testArgs(f128, -fmin(f128), fmax(f128)); |
| 3212 | try testArgs(f128, -fmin(f128), inf(f128)); | 8704 | try testArgs(f128, -fmin(f128), inf(f128)); |
| 3213 | try testArgs(f128, -fmin(f128), nan(f128)); | 8705 | try testArgs(f128, -fmin(f128), nan(f128)); |
| ... | @@ -3215,18 +8707,18 @@ fn binary(comptime op: anytype, comptime opts: struct { strict: bool = false }) | ... | @@ -3215,18 +8707,18 @@ fn binary(comptime op: anytype, comptime opts: struct { strict: bool = false }) |
| 3215 | try testArgs(f128, -tmin(f128), -nan(f128)); | 8707 | try testArgs(f128, -tmin(f128), -nan(f128)); |
| 3216 | try testArgs(f128, -tmin(f128), -inf(f128)); | 8708 | try testArgs(f128, -tmin(f128), -inf(f128)); |
| 3217 | try testArgs(f128, -tmin(f128), -fmax(f128)); | 8709 | try testArgs(f128, -tmin(f128), -fmax(f128)); |
| 3218 | try testArgs(f128, -tmin(f128), -10.0); | 8710 | try testArgs(f128, -tmin(f128), -1e1); |
| 3219 | try testArgs(f128, -tmin(f128), -1.0); | 8711 | try testArgs(f128, -tmin(f128), -1e0); |
| 3220 | try testArgs(f128, -tmin(f128), -0.1); | 8712 | try testArgs(f128, -tmin(f128), -1e-1); |
| 3221 | try testArgs(f128, -tmin(f128), -fmin(f128)); | 8713 | try testArgs(f128, -tmin(f128), -fmin(f128)); |
| 3222 | try testArgs(f128, -tmin(f128), -tmin(f128)); | 8714 | try testArgs(f128, -tmin(f128), -tmin(f128)); |
| 3223 | try testArgs(f128, -tmin(f128), -0.0); | 8715 | try testArgs(f128, -tmin(f128), -0.0); |
| 3224 | try testArgs(f128, -tmin(f128), 0.0); | 8716 | try testArgs(f128, -tmin(f128), 0.0); |
| 3225 | try testArgs(f128, -tmin(f128), tmin(f128)); | 8717 | try testArgs(f128, -tmin(f128), tmin(f128)); |
| 3226 | try testArgs(f128, -tmin(f128), fmin(f128)); | 8718 | try testArgs(f128, -tmin(f128), fmin(f128)); |
| 3227 | try testArgs(f128, -tmin(f128), 0.1); | 8719 | try testArgs(f128, -tmin(f128), 1e-1); |
| 3228 | try testArgs(f128, -tmin(f128), 1.0); | 8720 | try testArgs(f128, -tmin(f128), 1e0); |
| 3229 | try testArgs(f128, -tmin(f128), 10.0); | 8721 | try testArgs(f128, -tmin(f128), 1e1); |
| 3230 | try testArgs(f128, -tmin(f128), fmax(f128)); | 8722 | try testArgs(f128, -tmin(f128), fmax(f128)); |
| 3231 | try testArgs(f128, -tmin(f128), inf(f128)); | 8723 | try testArgs(f128, -tmin(f128), inf(f128)); |
| 3232 | try testArgs(f128, -tmin(f128), nan(f128)); | 8724 | try testArgs(f128, -tmin(f128), nan(f128)); |
| ... | @@ -3234,18 +8726,18 @@ fn binary(comptime op: anytype, comptime opts: struct { strict: bool = false }) | ... | @@ -3234,18 +8726,18 @@ fn binary(comptime op: anytype, comptime opts: struct { strict: bool = false }) |
| 3234 | try testArgs(f128, -0.0, -nan(f128)); | 8726 | try testArgs(f128, -0.0, -nan(f128)); |
| 3235 | try testArgs(f128, -0.0, -inf(f128)); | 8727 | try testArgs(f128, -0.0, -inf(f128)); |
| 3236 | try testArgs(f128, -0.0, -fmax(f128)); | 8728 | try testArgs(f128, -0.0, -fmax(f128)); |
| 3237 | try testArgs(f128, -0.0, -10.0); | 8729 | try testArgs(f128, -0.0, -1e1); |
| 3238 | try testArgs(f128, -0.0, -1.0); | 8730 | try testArgs(f128, -0.0, -1e0); |
| 3239 | try testArgs(f128, -0.0, -0.1); | 8731 | try testArgs(f128, -0.0, -1e-1); |
| 3240 | try testArgs(f128, -0.0, -fmin(f128)); | 8732 | try testArgs(f128, -0.0, -fmin(f128)); |
| 3241 | try testArgs(f128, -0.0, -tmin(f128)); | 8733 | try testArgs(f128, -0.0, -tmin(f128)); |
| 3242 | try testArgs(f128, -0.0, -0.0); | 8734 | try testArgs(f128, -0.0, -0.0); |
| 3243 | try testArgs(f128, -0.0, 0.0); | 8735 | try testArgs(f128, -0.0, 0.0); |
| 3244 | try testArgs(f128, -0.0, tmin(f128)); | 8736 | try testArgs(f128, -0.0, tmin(f128)); |
| 3245 | try testArgs(f128, -0.0, fmin(f128)); | 8737 | try testArgs(f128, -0.0, fmin(f128)); |
| 3246 | try testArgs(f128, -0.0, 0.1); | 8738 | try testArgs(f128, -0.0, 1e-1); |
| 3247 | try testArgs(f128, -0.0, 1.0); | 8739 | try testArgs(f128, -0.0, 1e0); |
| 3248 | try testArgs(f128, -0.0, 10.0); | 8740 | try testArgs(f128, -0.0, 1e1); |
| 3249 | try testArgs(f128, -0.0, fmax(f128)); | 8741 | try testArgs(f128, -0.0, fmax(f128)); |
| 3250 | try testArgs(f128, -0.0, inf(f128)); | 8742 | try testArgs(f128, -0.0, inf(f128)); |
| 3251 | try testArgs(f128, -0.0, nan(f128)); | 8743 | try testArgs(f128, -0.0, nan(f128)); |
| ... | @@ -3253,18 +8745,18 @@ fn binary(comptime op: anytype, comptime opts: struct { strict: bool = false }) | ... | @@ -3253,18 +8745,18 @@ fn binary(comptime op: anytype, comptime opts: struct { strict: bool = false }) |
| 3253 | try testArgs(f128, 0.0, -nan(f128)); | 8745 | try testArgs(f128, 0.0, -nan(f128)); |
| 3254 | try testArgs(f128, 0.0, -inf(f128)); | 8746 | try testArgs(f128, 0.0, -inf(f128)); |
| 3255 | try testArgs(f128, 0.0, -fmax(f128)); | 8747 | try testArgs(f128, 0.0, -fmax(f128)); |
| 3256 | try testArgs(f128, 0.0, -10.0); | 8748 | try testArgs(f128, 0.0, -1e1); |
| 3257 | try testArgs(f128, 0.0, -1.0); | 8749 | try testArgs(f128, 0.0, -1e0); |
| 3258 | try testArgs(f128, 0.0, -0.1); | 8750 | try testArgs(f128, 0.0, -1e-1); |
| 3259 | try testArgs(f128, 0.0, -fmin(f128)); | 8751 | try testArgs(f128, 0.0, -fmin(f128)); |
| 3260 | try testArgs(f128, 0.0, -tmin(f128)); | 8752 | try testArgs(f128, 0.0, -tmin(f128)); |
| 3261 | try testArgs(f128, 0.0, -0.0); | 8753 | try testArgs(f128, 0.0, -0.0); |
| 3262 | try testArgs(f128, 0.0, 0.0); | 8754 | try testArgs(f128, 0.0, 0.0); |
| 3263 | try testArgs(f128, 0.0, tmin(f128)); | 8755 | try testArgs(f128, 0.0, tmin(f128)); |
| 3264 | try testArgs(f128, 0.0, fmin(f128)); | 8756 | try testArgs(f128, 0.0, fmin(f128)); |
| 3265 | try testArgs(f128, 0.0, 0.1); | 8757 | try testArgs(f128, 0.0, 1e-1); |
| 3266 | try testArgs(f128, 0.0, 1.0); | 8758 | try testArgs(f128, 0.0, 1e0); |
| 3267 | try testArgs(f128, 0.0, 10.0); | 8759 | try testArgs(f128, 0.0, 1e1); |
| 3268 | try testArgs(f128, 0.0, fmax(f128)); | 8760 | try testArgs(f128, 0.0, fmax(f128)); |
| 3269 | try testArgs(f128, 0.0, inf(f128)); | 8761 | try testArgs(f128, 0.0, inf(f128)); |
| 3270 | try testArgs(f128, 0.0, nan(f128)); | 8762 | try testArgs(f128, 0.0, nan(f128)); |
| ... | @@ -3272,18 +8764,18 @@ fn binary(comptime op: anytype, comptime opts: struct { strict: bool = false }) | ... | @@ -3272,18 +8764,18 @@ fn binary(comptime op: anytype, comptime opts: struct { strict: bool = false }) |
| 3272 | try testArgs(f128, tmin(f128), -nan(f128)); | 8764 | try testArgs(f128, tmin(f128), -nan(f128)); |
| 3273 | try testArgs(f128, tmin(f128), -inf(f128)); | 8765 | try testArgs(f128, tmin(f128), -inf(f128)); |
| 3274 | try testArgs(f128, tmin(f128), -fmax(f128)); | 8766 | try testArgs(f128, tmin(f128), -fmax(f128)); |
| 3275 | try testArgs(f128, tmin(f128), -10.0); | 8767 | try testArgs(f128, tmin(f128), -1e1); |
| 3276 | try testArgs(f128, tmin(f128), -1.0); | 8768 | try testArgs(f128, tmin(f128), -1e0); |
| 3277 | try testArgs(f128, tmin(f128), -0.1); | 8769 | try testArgs(f128, tmin(f128), -1e-1); |
| 3278 | try testArgs(f128, tmin(f128), -fmin(f128)); | 8770 | try testArgs(f128, tmin(f128), -fmin(f128)); |
| 3279 | try testArgs(f128, tmin(f128), -tmin(f128)); | 8771 | try testArgs(f128, tmin(f128), -tmin(f128)); |
| 3280 | try testArgs(f128, tmin(f128), -0.0); | 8772 | try testArgs(f128, tmin(f128), -0.0); |
| 3281 | try testArgs(f128, tmin(f128), 0.0); | 8773 | try testArgs(f128, tmin(f128), 0.0); |
| 3282 | try testArgs(f128, tmin(f128), tmin(f128)); | 8774 | try testArgs(f128, tmin(f128), tmin(f128)); |
| 3283 | try testArgs(f128, tmin(f128), fmin(f128)); | 8775 | try testArgs(f128, tmin(f128), fmin(f128)); |
| 3284 | try testArgs(f128, tmin(f128), 0.1); | 8776 | try testArgs(f128, tmin(f128), 1e-1); |
| 3285 | try testArgs(f128, tmin(f128), 1.0); | 8777 | try testArgs(f128, tmin(f128), 1e0); |
| 3286 | try testArgs(f128, tmin(f128), 10.0); | 8778 | try testArgs(f128, tmin(f128), 1e1); |
| 3287 | try testArgs(f128, tmin(f128), fmax(f128)); | 8779 | try testArgs(f128, tmin(f128), fmax(f128)); |
| 3288 | try testArgs(f128, tmin(f128), inf(f128)); | 8780 | try testArgs(f128, tmin(f128), inf(f128)); |
| 3289 | try testArgs(f128, tmin(f128), nan(f128)); | 8781 | try testArgs(f128, tmin(f128), nan(f128)); |
| ... | @@ -3291,94 +8783,94 @@ fn binary(comptime op: anytype, comptime opts: struct { strict: bool = false }) | ... | @@ -3291,94 +8783,94 @@ fn binary(comptime op: anytype, comptime opts: struct { strict: bool = false }) |
| 3291 | try testArgs(f128, fmin(f128), -nan(f128)); | 8783 | try testArgs(f128, fmin(f128), -nan(f128)); |
| 3292 | try testArgs(f128, fmin(f128), -inf(f128)); | 8784 | try testArgs(f128, fmin(f128), -inf(f128)); |
| 3293 | try testArgs(f128, fmin(f128), -fmax(f128)); | 8785 | try testArgs(f128, fmin(f128), -fmax(f128)); |
| 3294 | try testArgs(f128, fmin(f128), -10.0); | 8786 | try testArgs(f128, fmin(f128), -1e1); |
| 3295 | try testArgs(f128, fmin(f128), -1.0); | 8787 | try testArgs(f128, fmin(f128), -1e0); |
| 3296 | try testArgs(f128, fmin(f128), -0.1); | 8788 | try testArgs(f128, fmin(f128), -1e-1); |
| 3297 | try testArgs(f128, fmin(f128), -fmin(f128)); | 8789 | try testArgs(f128, fmin(f128), -fmin(f128)); |
| 3298 | try testArgs(f128, fmin(f128), -tmin(f128)); | 8790 | try testArgs(f128, fmin(f128), -tmin(f128)); |
| 3299 | try testArgs(f128, fmin(f128), -0.0); | 8791 | try testArgs(f128, fmin(f128), -0.0); |
| 3300 | try testArgs(f128, fmin(f128), 0.0); | 8792 | try testArgs(f128, fmin(f128), 0.0); |
| 3301 | try testArgs(f128, fmin(f128), tmin(f128)); | 8793 | try testArgs(f128, fmin(f128), tmin(f128)); |
| 3302 | try testArgs(f128, fmin(f128), fmin(f128)); | 8794 | try testArgs(f128, fmin(f128), fmin(f128)); |
| 3303 | try testArgs(f128, fmin(f128), 0.1); | 8795 | try testArgs(f128, fmin(f128), 1e-1); |
| 3304 | try testArgs(f128, fmin(f128), 1.0); | 8796 | try testArgs(f128, fmin(f128), 1e0); |
| 3305 | try testArgs(f128, fmin(f128), 10.0); | 8797 | try testArgs(f128, fmin(f128), 1e1); |
| 3306 | try testArgs(f128, fmin(f128), fmax(f128)); | 8798 | try testArgs(f128, fmin(f128), fmax(f128)); |
| 3307 | try testArgs(f128, fmin(f128), inf(f128)); | 8799 | try testArgs(f128, fmin(f128), inf(f128)); |
| 3308 | try testArgs(f128, fmin(f128), nan(f128)); | 8800 | try testArgs(f128, fmin(f128), nan(f128)); |
| 3309 | 8801 | ||
| 3310 | try testArgs(f128, 0.1, -nan(f128)); | 8802 | try testArgs(f128, 1e-1, -nan(f128)); |
| 3311 | try testArgs(f128, 0.1, -inf(f128)); | 8803 | try testArgs(f128, 1e-1, -inf(f128)); |
| 3312 | try testArgs(f128, 0.1, -fmax(f128)); | 8804 | try testArgs(f128, 1e-1, -fmax(f128)); |
| 3313 | try testArgs(f128, 0.1, -10.0); | 8805 | try testArgs(f128, 1e-1, -1e1); |
| 3314 | try testArgs(f128, 0.1, -1.0); | 8806 | try testArgs(f128, 1e-1, -1e0); |
| 3315 | try testArgs(f128, 0.1, -0.1); | 8807 | try testArgs(f128, 1e-1, -1e-1); |
| 3316 | try testArgs(f128, 0.1, -fmin(f128)); | 8808 | try testArgs(f128, 1e-1, -fmin(f128)); |
| 3317 | try testArgs(f128, 0.1, -tmin(f128)); | 8809 | try testArgs(f128, 1e-1, -tmin(f128)); |
| 3318 | try testArgs(f128, 0.1, -0.0); | 8810 | try testArgs(f128, 1e-1, -0.0); |
| 3319 | try testArgs(f128, 0.1, 0.0); | 8811 | try testArgs(f128, 1e-1, 0.0); |
| 3320 | try testArgs(f128, 0.1, tmin(f128)); | 8812 | try testArgs(f128, 1e-1, tmin(f128)); |
| 3321 | try testArgs(f128, 0.1, fmin(f128)); | 8813 | try testArgs(f128, 1e-1, fmin(f128)); |
| 3322 | try testArgs(f128, 0.1, 0.1); | 8814 | try testArgs(f128, 1e-1, 1e-1); |
| 3323 | try testArgs(f128, 0.1, 1.0); | 8815 | try testArgs(f128, 1e-1, 1e0); |
| 3324 | try testArgs(f128, 0.1, 10.0); | 8816 | try testArgs(f128, 1e-1, 1e1); |
| 3325 | try testArgs(f128, 0.1, fmax(f128)); | 8817 | try testArgs(f128, 1e-1, fmax(f128)); |
| 3326 | try testArgs(f128, 0.1, inf(f128)); | 8818 | try testArgs(f128, 1e-1, inf(f128)); |
| 3327 | try testArgs(f128, 0.1, nan(f128)); | 8819 | try testArgs(f128, 1e-1, nan(f128)); |
| 3328 | 8820 | ||
| 3329 | try testArgs(f128, 1.0, -nan(f128)); | 8821 | try testArgs(f128, 1e0, -nan(f128)); |
| 3330 | try testArgs(f128, 1.0, -inf(f128)); | 8822 | try testArgs(f128, 1e0, -inf(f128)); |
| 3331 | try testArgs(f128, 1.0, -fmax(f128)); | 8823 | try testArgs(f128, 1e0, -fmax(f128)); |
| 3332 | try testArgs(f128, 1.0, -10.0); | 8824 | try testArgs(f128, 1e0, -1e1); |
| 3333 | try testArgs(f128, 1.0, -1.0); | 8825 | try testArgs(f128, 1e0, -1e0); |
| 3334 | try testArgs(f128, 1.0, -0.1); | 8826 | try testArgs(f128, 1e0, -1e-1); |
| 3335 | try testArgs(f128, 1.0, -fmin(f128)); | 8827 | try testArgs(f128, 1e0, -fmin(f128)); |
| 3336 | try testArgs(f128, 1.0, -tmin(f128)); | 8828 | try testArgs(f128, 1e0, -tmin(f128)); |
| 3337 | try testArgs(f128, 1.0, -0.0); | 8829 | try testArgs(f128, 1e0, -0.0); |
| 3338 | try testArgs(f128, 1.0, 0.0); | 8830 | try testArgs(f128, 1e0, 0.0); |
| 3339 | try testArgs(f128, 1.0, tmin(f128)); | 8831 | try testArgs(f128, 1e0, tmin(f128)); |
| 3340 | try testArgs(f128, 1.0, fmin(f128)); | 8832 | try testArgs(f128, 1e0, fmin(f128)); |
| 3341 | try testArgs(f128, 1.0, 0.1); | 8833 | try testArgs(f128, 1e0, 1e-1); |
| 3342 | try testArgs(f128, 1.0, 1.0); | 8834 | try testArgs(f128, 1e0, 1e0); |
| 3343 | try testArgs(f128, 1.0, 10.0); | 8835 | try testArgs(f128, 1e0, 1e1); |
| 3344 | try testArgs(f128, 1.0, fmax(f128)); | 8836 | try testArgs(f128, 1e0, fmax(f128)); |
| 3345 | try testArgs(f128, 1.0, inf(f128)); | 8837 | try testArgs(f128, 1e0, inf(f128)); |
| 3346 | try testArgs(f128, 1.0, nan(f128)); | 8838 | try testArgs(f128, 1e0, nan(f128)); |
| 3347 | 8839 | ||
| 3348 | try testArgs(f128, 10.0, -nan(f128)); | 8840 | try testArgs(f128, 1e1, -nan(f128)); |
| 3349 | try testArgs(f128, 10.0, -inf(f128)); | 8841 | try testArgs(f128, 1e1, -inf(f128)); |
| 3350 | try testArgs(f128, 10.0, -fmax(f128)); | 8842 | try testArgs(f128, 1e1, -fmax(f128)); |
| 3351 | try testArgs(f128, 10.0, -10.0); | 8843 | try testArgs(f128, 1e1, -1e1); |
| 3352 | try testArgs(f128, 10.0, -1.0); | 8844 | try testArgs(f128, 1e1, -1e0); |
| 3353 | try testArgs(f128, 10.0, -0.1); | 8845 | try testArgs(f128, 1e1, -1e-1); |
| 3354 | try testArgs(f128, 10.0, -fmin(f128)); | 8846 | try testArgs(f128, 1e1, -fmin(f128)); |
| 3355 | try testArgs(f128, 10.0, -tmin(f128)); | 8847 | try testArgs(f128, 1e1, -tmin(f128)); |
| 3356 | try testArgs(f128, 10.0, -0.0); | 8848 | try testArgs(f128, 1e1, -0.0); |
| 3357 | try testArgs(f128, 10.0, 0.0); | 8849 | try testArgs(f128, 1e1, 0.0); |
| 3358 | try testArgs(f128, 10.0, tmin(f128)); | 8850 | try testArgs(f128, 1e1, tmin(f128)); |
| 3359 | try testArgs(f128, 10.0, fmin(f128)); | 8851 | try testArgs(f128, 1e1, fmin(f128)); |
| 3360 | try testArgs(f128, 10.0, 0.1); | 8852 | try testArgs(f128, 1e1, 1e-1); |
| 3361 | try testArgs(f128, 10.0, 1.0); | 8853 | try testArgs(f128, 1e1, 1e0); |
| 3362 | try testArgs(f128, 10.0, 10.0); | 8854 | try testArgs(f128, 1e1, 1e1); |
| 3363 | try testArgs(f128, 10.0, fmax(f128)); | 8855 | try testArgs(f128, 1e1, fmax(f128)); |
| 3364 | try testArgs(f128, 10.0, inf(f128)); | 8856 | try testArgs(f128, 1e1, inf(f128)); |
| 3365 | try testArgs(f128, 10.0, nan(f128)); | 8857 | try testArgs(f128, 1e1, nan(f128)); |
| 3366 | 8858 | ||
| 3367 | try testArgs(f128, fmax(f128), -nan(f128)); | 8859 | try testArgs(f128, fmax(f128), -nan(f128)); |
| 3368 | try testArgs(f128, fmax(f128), -inf(f128)); | 8860 | try testArgs(f128, fmax(f128), -inf(f128)); |
| 3369 | try testArgs(f128, fmax(f128), -fmax(f128)); | 8861 | try testArgs(f128, fmax(f128), -fmax(f128)); |
| 3370 | try testArgs(f128, fmax(f128), -10.0); | 8862 | try testArgs(f128, fmax(f128), -1e1); |
| 3371 | try testArgs(f128, fmax(f128), -1.0); | 8863 | try testArgs(f128, fmax(f128), -1e0); |
| 3372 | try testArgs(f128, fmax(f128), -0.1); | 8864 | try testArgs(f128, fmax(f128), -1e-1); |
| 3373 | try testArgs(f128, fmax(f128), -fmin(f128)); | 8865 | try testArgs(f128, fmax(f128), -fmin(f128)); |
| 3374 | try testArgs(f128, fmax(f128), -tmin(f128)); | 8866 | try testArgs(f128, fmax(f128), -tmin(f128)); |
| 3375 | try testArgs(f128, fmax(f128), -0.0); | 8867 | try testArgs(f128, fmax(f128), -0.0); |
| 3376 | try testArgs(f128, fmax(f128), 0.0); | 8868 | try testArgs(f128, fmax(f128), 0.0); |
| 3377 | try testArgs(f128, fmax(f128), tmin(f128)); | 8869 | try testArgs(f128, fmax(f128), tmin(f128)); |
| 3378 | try testArgs(f128, fmax(f128), fmin(f128)); | 8870 | try testArgs(f128, fmax(f128), fmin(f128)); |
| 3379 | try testArgs(f128, fmax(f128), 0.1); | 8871 | try testArgs(f128, fmax(f128), 1e-1); |
| 3380 | try testArgs(f128, fmax(f128), 1.0); | 8872 | try testArgs(f128, fmax(f128), 1e0); |
| 3381 | try testArgs(f128, fmax(f128), 10.0); | 8873 | try testArgs(f128, fmax(f128), 1e1); |
| 3382 | try testArgs(f128, fmax(f128), fmax(f128)); | 8874 | try testArgs(f128, fmax(f128), fmax(f128)); |
| 3383 | try testArgs(f128, fmax(f128), inf(f128)); | 8875 | try testArgs(f128, fmax(f128), inf(f128)); |
| 3384 | try testArgs(f128, fmax(f128), nan(f128)); | 8876 | try testArgs(f128, fmax(f128), nan(f128)); |
| ... | @@ -3386,18 +8878,18 @@ fn binary(comptime op: anytype, comptime opts: struct { strict: bool = false }) | ... | @@ -3386,18 +8878,18 @@ fn binary(comptime op: anytype, comptime opts: struct { strict: bool = false }) |
| 3386 | try testArgs(f128, inf(f128), -nan(f128)); | 8878 | try testArgs(f128, inf(f128), -nan(f128)); |
| 3387 | try testArgs(f128, inf(f128), -inf(f128)); | 8879 | try testArgs(f128, inf(f128), -inf(f128)); |
| 3388 | try testArgs(f128, inf(f128), -fmax(f128)); | 8880 | try testArgs(f128, inf(f128), -fmax(f128)); |
| 3389 | try testArgs(f128, inf(f128), -10.0); | 8881 | try testArgs(f128, inf(f128), -1e1); |
| 3390 | try testArgs(f128, inf(f128), -1.0); | 8882 | try testArgs(f128, inf(f128), -1e0); |
| 3391 | try testArgs(f128, inf(f128), -0.1); | 8883 | try testArgs(f128, inf(f128), -1e-1); |
| 3392 | try testArgs(f128, inf(f128), -fmin(f128)); | 8884 | try testArgs(f128, inf(f128), -fmin(f128)); |
| 3393 | try testArgs(f128, inf(f128), -tmin(f128)); | 8885 | try testArgs(f128, inf(f128), -tmin(f128)); |
| 3394 | try testArgs(f128, inf(f128), -0.0); | 8886 | try testArgs(f128, inf(f128), -0.0); |
| 3395 | try testArgs(f128, inf(f128), 0.0); | 8887 | try testArgs(f128, inf(f128), 0.0); |
| 3396 | try testArgs(f128, inf(f128), tmin(f128)); | 8888 | try testArgs(f128, inf(f128), tmin(f128)); |
| 3397 | try testArgs(f128, inf(f128), fmin(f128)); | 8889 | try testArgs(f128, inf(f128), fmin(f128)); |
| 3398 | try testArgs(f128, inf(f128), 0.1); | 8890 | try testArgs(f128, inf(f128), 1e-1); |
| 3399 | try testArgs(f128, inf(f128), 1.0); | 8891 | try testArgs(f128, inf(f128), 1e0); |
| 3400 | try testArgs(f128, inf(f128), 10.0); | 8892 | try testArgs(f128, inf(f128), 1e1); |
| 3401 | try testArgs(f128, inf(f128), fmax(f128)); | 8893 | try testArgs(f128, inf(f128), fmax(f128)); |
| 3402 | try testArgs(f128, inf(f128), inf(f128)); | 8894 | try testArgs(f128, inf(f128), inf(f128)); |
| 3403 | try testArgs(f128, inf(f128), nan(f128)); | 8895 | try testArgs(f128, inf(f128), nan(f128)); |
| ... | @@ -3405,18 +8897,18 @@ fn binary(comptime op: anytype, comptime opts: struct { strict: bool = false }) | ... | @@ -3405,18 +8897,18 @@ fn binary(comptime op: anytype, comptime opts: struct { strict: bool = false }) |
| 3405 | try testArgs(f128, nan(f128), -nan(f128)); | 8897 | try testArgs(f128, nan(f128), -nan(f128)); |
| 3406 | try testArgs(f128, nan(f128), -inf(f128)); | 8898 | try testArgs(f128, nan(f128), -inf(f128)); |
| 3407 | try testArgs(f128, nan(f128), -fmax(f128)); | 8899 | try testArgs(f128, nan(f128), -fmax(f128)); |
| 3408 | try testArgs(f128, nan(f128), -10.0); | 8900 | try testArgs(f128, nan(f128), -1e1); |
| 3409 | try testArgs(f128, nan(f128), -1.0); | 8901 | try testArgs(f128, nan(f128), -1e0); |
| 3410 | try testArgs(f128, nan(f128), -0.1); | 8902 | try testArgs(f128, nan(f128), -1e-1); |
| 3411 | try testArgs(f128, nan(f128), -fmin(f128)); | 8903 | try testArgs(f128, nan(f128), -fmin(f128)); |
| 3412 | try testArgs(f128, nan(f128), -tmin(f128)); | 8904 | try testArgs(f128, nan(f128), -tmin(f128)); |
| 3413 | try testArgs(f128, nan(f128), -0.0); | 8905 | try testArgs(f128, nan(f128), -0.0); |
| 3414 | try testArgs(f128, nan(f128), 0.0); | 8906 | try testArgs(f128, nan(f128), 0.0); |
| 3415 | try testArgs(f128, nan(f128), tmin(f128)); | 8907 | try testArgs(f128, nan(f128), tmin(f128)); |
| 3416 | try testArgs(f128, nan(f128), fmin(f128)); | 8908 | try testArgs(f128, nan(f128), fmin(f128)); |
| 3417 | try testArgs(f128, nan(f128), 0.1); | 8909 | try testArgs(f128, nan(f128), 1e-1); |
| 3418 | try testArgs(f128, nan(f128), 1.0); | 8910 | try testArgs(f128, nan(f128), 1e0); |
| 3419 | try testArgs(f128, nan(f128), 10.0); | 8911 | try testArgs(f128, nan(f128), 1e1); |
| 3420 | try testArgs(f128, nan(f128), fmax(f128)); | 8912 | try testArgs(f128, nan(f128), fmax(f128)); |
| 3421 | try testArgs(f128, nan(f128), inf(f128)); | 8913 | try testArgs(f128, nan(f128), inf(f128)); |
| 3422 | try testArgs(f128, nan(f128), nan(f128)); | 8914 | try testArgs(f128, nan(f128), nan(f128)); |
| ... | @@ -4050,73 +9542,73 @@ fn binary(comptime op: anytype, comptime opts: struct { strict: bool = false }) | ... | @@ -4050,73 +9542,73 @@ fn binary(comptime op: anytype, comptime opts: struct { strict: bool = false }) |
| 4050 | fmax(f16), | 9542 | fmax(f16), |
| 4051 | }); | 9543 | }); |
| 4052 | try testArgs(@Vector(2, f16), .{ | 9544 | try testArgs(@Vector(2, f16), .{ |
| 4053 | 0.1, 1.0, | 9545 | 1e-1, 1e0, |
| 4054 | }, .{ | 9546 | }, .{ |
| 4055 | -nan(f16), -fmin(f16), | 9547 | -nan(f16), -fmin(f16), |
| 4056 | }); | 9548 | }); |
| 4057 | try testArgs(@Vector(4, f16), .{ | 9549 | try testArgs(@Vector(4, f16), .{ |
| 4058 | 0.1, -fmax(f16), 0.0, 0.1, | 9550 | 1e-1, -fmax(f16), 0.0, 1e-1, |
| 4059 | }, .{ | 9551 | }, .{ |
| 4060 | -fmin(f16), -10.0, 1.0, -tmin(f16), | 9552 | -fmin(f16), -1e1, 1e0, -tmin(f16), |
| 4061 | }); | 9553 | }); |
| 4062 | try testArgs(@Vector(8, f16), .{ | 9554 | try testArgs(@Vector(8, f16), .{ |
| 4063 | -fmax(f16), -fmin(f16), -nan(f16), -0.0, tmin(f16), -0.0, 0.0, 0.1, | 9555 | -fmax(f16), -fmin(f16), -nan(f16), -0.0, tmin(f16), -0.0, 0.0, 1e-1, |
| 4064 | }, .{ | 9556 | }, .{ |
| 4065 | -1.0, tmin(f16), nan(f16), nan(f16), -fmax(f16), -10.0, -nan(f16), 10.0, | 9557 | -1e0, tmin(f16), nan(f16), nan(f16), -fmax(f16), -1e1, -nan(f16), 1e1, |
| 4066 | }); | 9558 | }); |
| 4067 | try testArgs(@Vector(16, f16), .{ | 9559 | try testArgs(@Vector(16, f16), .{ |
| 4068 | 0.1, fmax(f16), -10.0, fmax(f16), -10.0, 0.1, -tmin(f16), -inf(f16), -tmin(f16), -1.0, -fmin(f16), tmin(f16), 10.0, -fmax(f16), 0.0, -fmin(f16), | 9560 | 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), |
| 4069 | }, .{ | 9561 | }, .{ |
| 4070 | inf(f16), -10.0, -fmax(f16), fmax(f16), -tmin(f16), 0.0, -1.0, -1.0, 0.1, -nan(f16), -tmin(f16), 1.0, 0.1, fmax(f16), -0.0, inf(f16), | 9562 | 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), |
| 4071 | }); | 9563 | }); |
| 4072 | try testArgs(@Vector(32, f16), .{ | 9564 | try testArgs(@Vector(32, f16), .{ |
| 4073 | -inf(f16), tmin(f16), fmin(f16), -nan(f16), nan(f16), 0.1, 0.0, 10.0, -tmin(f16), inf(f16), 1.0, -10.0, fmin(f16), -0.0, 1.0, -fmax(f16), | 9565 | -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), |
| 4074 | 10.0, -0.0, -10.0, -tmin(f16), fmax(f16), nan(f16), -fmin(f16), -1.0, 0.0, -10.0, -nan(f16), 1.0, -tmin(f16), -0.0, nan(f16), 10.0, | 9566 | 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, |
| 4075 | }, .{ | 9567 | }, .{ |
| 4076 | 0.0, 10.0, -nan(f16), -0.0, tmin(f16), fmax(f16), nan(f16), tmin(f16), -10.0, 0.1, 10.0, fmin(f16), -fmax(f16), inf(f16), inf(f16), -tmin(f16), | 9568 | 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), |
| 4077 | inf(f16), -0.0, 0.1, 0.0, -fmin(f16), -0.0, -nan(f16), -inf(f16), -fmin(f16), fmax(f16), 1.0, fmin(f16), -0.0, -tmin(f16), -fmax(f16), -10.0, | 9569 | 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, |
| 4078 | }); | 9570 | }); |
| 4079 | try testArgs(@Vector(64, f16), .{ | 9571 | try testArgs(@Vector(64, f16), .{ |
| 4080 | -nan(f16), fmin(f16), -inf(f16), inf(f16), -tmin(f16), inf(f16), 0.1, -1.0, -inf(f16), nan(f16), -fmin(f16), 0.1, -tmin(f16), -fmax(f16), -10.0, inf(f16), | 9572 | -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), |
| 4081 | 0.0, -fmin(f16), -fmax(f16), 10.0, -fmax(f16), fmax(f16), 10.0, fmin(f16), -inf(f16), -nan(f16), -tmin(f16), nan(f16), -0.0, 0.0, 0.1, -fmin(f16), | 9573 | 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), |
| 4082 | 0.0, nan(f16), inf(f16), fmax(f16), nan(f16), tmin(f16), 1.0, tmin(f16), fmin(f16), -10.0, 0.0, 0.1, inf(f16), -10.0, inf(f16), 1.0, | 9574 | 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, |
| 4083 | 0.1, -inf(f16), 10.0, -0.0, -1.0, -tmin(f16), -nan(f16), 0.1, 0.1, -nan(f16), -0.0, -10.0, -0.0, -nan(f16), 0.1, fmin(f16), | 9575 | 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), |
| 4084 | }, .{ | 9576 | }, .{ |
| 4085 | 10.0, 0.0, fmax(f16), -inf(f16), -fmax(f16), -fmax(f16), tmin(f16), -1.0, -tmin(f16), -10.0, nan(f16), -nan(f16), tmin(f16), -fmin(f16), nan(f16), -10.0, | 9577 | 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, |
| 4086 | 10.0, fmax(f16), 0.1, 0.0, 0.1, -fmax(f16), -0.0, -fmin(f16), inf(f16), -1.0, inf(f16), fmin(f16), -inf(f16), -tmin(f16), 10.0, 10.0, | 9578 | 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, |
| 4087 | 0.1, 0.1, 0.1, 10.0, -fmin(f16), inf(f16), 0.1, fmax(f16), inf(f16), -0.0, -10.0, tmin(f16), -fmin(f16), 0.0, 10.0, 0.0, | 9579 | 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, |
| 4088 | -tmin(f16), -inf(f16), 1.0, -fmax(f16), inf(f16), 10.0, fmax(f16), -1.0, 0.0, 0.1, -1.0, -inf(f16), 0.1, 0.0, -10.0, fmax(f16), | 9580 | -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), |
| 4089 | }); | 9581 | }); |
| 4090 | try testArgs(@Vector(128, f16), .{ | 9582 | try testArgs(@Vector(128, f16), .{ |
| 4091 | -fmin(f16), 1.0, 0.0, 0.1, nan(f16), 0.1, 0.1, -inf(f16), -tmin(f16), 1.0, -fmin(f16), -fmax(f16), -1.0, -fmin(f16), 10.0, -nan(f16), | 9583 | -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), |
| 4092 | inf(f16), -inf(f16), tmin(f16), -10.0, -1.0, -0.0, -0.0, 1.0, nan(f16), -10.0, fmin(f16), -tmin(f16), tmin(f16), 0.1, -fmax(f16), fmax(f16), | 9584 | 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), |
| 4093 | tmin(f16), -fmin(f16), nan(f16), 10.0, 1.0, -fmin(f16), 0.1, 10.0, fmax(f16), fmax(f16), fmax(f16), -1.0, -nan(f16), 10.0, tmin(f16), -nan(f16), | 9585 | 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), |
| 4094 | -nan(f16), -inf(f16), -0.0, -inf(f16), nan(f16), -1.0, 0.1, -fmax(f16), -10.0, nan(f16), 1.0, -10.0, tmin(f16), 1.0, 0.1, 1.0, | 9586 | -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, |
| 4095 | 10.0, 0.1, tmin(f16), nan(f16), -inf(f16), -1.0, -1.0, -fmax(f16), -inf(f16), 0.1, 0.1, -0.0, 10.0, fmin(f16), -1.0, inf(f16), | 9587 | 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), |
| 4096 | 0.1, -10.0, inf(f16), -0.0, 0.1, 0.0, inf(f16), 1.0, tmin(f16), -tmin(f16), 0.1, inf(f16), tmin(f16), -inf(f16), 10.0, 1.0, | 9588 | 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, |
| 4097 | -inf(f16), 0.1, 1.0, fmax(f16), -fmin(f16), nan(f16), -nan(f16), fmin(f16), -1.0, -fmax(f16), inf(f16), -fmax(f16), 0.0, -10.0, fmin(f16), -fmax(f16), | 9589 | -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), |
| 4098 | -0.0, -1.0, 0.1, 10.0, inf(f16), fmax(f16), inf(f16), 10.0, fmax(f16), -0.0, -tmin(f16), fmin(f16), inf(f16), nan(f16), -fmin(f16), -1.0, | 9590 | -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, |
| 4099 | }, .{ | 9591 | }, .{ |
| 4100 | -fmax(f16), fmax(f16), inf(f16), 1.0, nan(f16), 0.1, -fmax(f16), 10.0, -fmin(f16), 0.1, fmin(f16), -0.0, 0.1, -0.0, -nan(f16), -nan(f16), | 9592 | -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), |
| 4101 | inf(f16), 1.0, -1.0, 0.1, 0.1, 0.1, 0.0, -tmin(f16), -1.0, -10.0, -tmin(f16), 1.0, -10.0, fmin(f16), -fmax(f16), -nan(f16), | 9593 | 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), |
| 4102 | -tmin(f16), -inf(f16), inf(f16), -fmin(f16), -nan(f16), 0.0, -inf(f16), -fmax(f16), 0.1, -inf(f16), tmin(f16), nan(f16), tmin(f16), fmin(f16), -0.0, 0.1, | 9594 | -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, |
| 4103 | fmin(f16), fmin(f16), 1.0, tmin(f16), 0.0, 10.0, 0.1, inf(f16), 10.0, -tmin(f16), tmin(f16), -1.0, -fmin(f16), 1.0, nan(f16), -fmax(f16), | 9595 | 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), |
| 4104 | nan(f16), -fmin(f16), 0.1, 10.0, -10.0, 1.0, -0.0, tmin(f16), nan(f16), inf(f16), -fmax(f16), tmin(f16), -tmin(f16), 10.0, fmin(f16), -tmin(f16), | 9596 | 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), |
| 4105 | -0.0, 1.0, tmin(f16), fmax(f16), 1.0, -inf(f16), -nan(f16), -0.0, 0.1, -inf(f16), 0.1, fmax(f16), -inf(f16), -nan(f16), -1.0, -inf(f16), | 9597 | -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), |
| 4106 | 0.1, fmin(f16), -10.0, -tmin(f16), 1.0, -nan(f16), -fmax(f16), -10.0, -tmin(f16), 10.0, nan(f16), fmin(f16), fmax(f16), tmin(f16), -inf(f16), 1.0, | 9598 | 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, |
| 4107 | -fmin(f16), tmin(f16), -1.0, 0.1, 0.0, nan(f16), 1.0, fmax(f16), -1.0, 10.0, nan(f16), 1.0, fmin(f16), 1.0, -10.0, -10.0, | 9599 | -fmin(f16), tmin(f16), -1e0, 1e-1, 0.0, nan(f16), 1e0, fmax(f16), -1e0, 1e1, nan(f16), 1e0, fmin(f16), 1e0, -1e1, -1e1, |
| 4108 | }); | 9600 | }); |
| 4109 | try testArgs(@Vector(69, f16), .{ | 9601 | try testArgs(@Vector(69, f16), .{ |
| 4110 | -nan(f16), -1.0, -fmin(f16), fmin(f16), inf(f16), 0.1, 0.0, fmax(f16), tmin(f16), 0.1, 0.0, -tmin(f16), 0.0, 0.0, 1.0, -inf(f16), | 9602 | -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), |
| 4111 | tmin(f16), -inf(f16), -tmin(f16), fmin(f16), -inf(f16), -nan(f16), tmin(f16), -tmin(f16), 0.1, -1.0, -tmin(f16), fmax(f16), nan(f16), -fmin(f16), fmin(f16), 10.0, | 9603 | 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, |
| 4112 | fmin(f16), -10.0, 0.0, fmin(f16), fmax(f16), -nan(f16), fmax(f16), -fmax(f16), nan(f16), -nan(f16), fmin(f16), -10.0, -fmin(f16), fmin(f16), -fmin(f16), -nan(f16), | 9604 | 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), |
| 4113 | 0.0, -1.0, fmax(f16), 0.1, inf(f16), 1.0, -1.0, -0.0, 10.0, 0.1, -fmax(f16), tmin(f16), -inf(f16), tmin(f16), -fmax(f16), 0.1, | 9605 | 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, |
| 4114 | -10.0, -0.0, -fmax(f16), nan(f16), fmax(f16), | 9606 | -1e1, -0.0, -fmax(f16), nan(f16), fmax(f16), |
| 4115 | }, .{ | 9607 | }, .{ |
| 4116 | inf(f16), -fmin(f16), 0.1, 0.1, -0.0, fmax(f16), 0.1, -0.0, 0.0, -0.0, 0.0, -tmin(f16), tmin(f16), -1.0, nan(f16), -fmin(f16), | 9608 | 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), |
| 4117 | fmin(f16), 0.1, 0.1, nan(f16), -fmax(f16), -inf(f16), -nan(f16), -nan(f16), 0.1, -fmax(f16), fmin(f16), 0.1, 0.1, 0.1, -0.0, 10.0, | 9609 | 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, |
| 4118 | tmin(f16), -nan(f16), fmin(f16), -1.0, 1.0, -tmin(f16), 0.0, nan(f16), fmax(f16), -10.0, fmin(f16), -fmin(f16), -1.0, 0.1, -fmin(f16), -fmin(f16), | 9610 | 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), |
| 4119 | -fmax(f16), 0.0, fmin(f16), -10.0, -1.0, -1.0, fmax(f16), -nan(f16), -inf(f16), -inf(f16), 0.0, tmin(f16), -0.0, nan(f16), -inf(f16), nan(f16), | 9611 | -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), |
| 4120 | inf(f16), fmin(f16), -nan(f16), -inf(f16), inf(f16), | 9612 | inf(f16), fmin(f16), -nan(f16), -inf(f16), inf(f16), |
| 4121 | }); | 9613 | }); |
| 4122 | 9614 | ||
| ... | @@ -4126,229 +9618,229 @@ fn binary(comptime op: anytype, comptime opts: struct { strict: bool = false }) | ... | @@ -4126,229 +9618,229 @@ fn binary(comptime op: anytype, comptime opts: struct { strict: bool = false }) |
| 4126 | -tmin(f32), | 9618 | -tmin(f32), |
| 4127 | }); | 9619 | }); |
| 4128 | try testArgs(@Vector(2, f32), .{ | 9620 | try testArgs(@Vector(2, f32), .{ |
| 4129 | nan(f32), -10.0, | 9621 | nan(f32), -1e1, |
| 4130 | }, .{ | 9622 | }, .{ |
| 4131 | -tmin(f32), fmin(f32), | 9623 | -tmin(f32), fmin(f32), |
| 4132 | }); | 9624 | }); |
| 4133 | try testArgs(@Vector(4, f32), .{ | 9625 | try testArgs(@Vector(4, f32), .{ |
| 4134 | fmax(f32), -fmax(f32), -10.0, 0.0, | 9626 | fmax(f32), -fmax(f32), -1e1, 0.0, |
| 4135 | }, .{ | 9627 | }, .{ |
| 4136 | inf(f32), inf(f32), -10.0, inf(f32), | 9628 | inf(f32), inf(f32), -1e1, inf(f32), |
| 4137 | }); | 9629 | }); |
| 4138 | try testArgs(@Vector(8, f32), .{ | 9630 | try testArgs(@Vector(8, f32), .{ |
| 4139 | -10.0, fmax(f32), inf(f32), -0.0, -tmin(f32), -tmin(f32), 10.0, 0.1, | 9631 | -1e1, fmax(f32), inf(f32), -0.0, -tmin(f32), -tmin(f32), 1e1, 1e-1, |
| 4140 | }, .{ | 9632 | }, .{ |
| 4141 | 10.0, -1.0, -1.0, inf(f32), 1.0, -tmin(f32), nan(f32), 10.0, | 9633 | 1e1, -1e0, -1e0, inf(f32), 1e0, -tmin(f32), nan(f32), 1e1, |
| 4142 | }); | 9634 | }); |
| 4143 | try testArgs(@Vector(16, f32), .{ | 9635 | try testArgs(@Vector(16, f32), .{ |
| 4144 | 0.1, 0.1, -nan(f32), -10.0, -nan(f32), 0.0, fmin(f32), fmin(f32), -10.0, 1.0, -fmax(f32), -0.0, inf(f32), -0.0, fmax(f32), -fmin(f32), | 9636 | 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), |
| 4145 | }, .{ | 9637 | }, .{ |
| 4146 | nan(f32), 0.0, tmin(f32), -1.0, -10.0, -tmin(f32), fmin(f32), -fmax(f32), 0.1, 0.1, -inf(f32), tmin(f32), -0.0, 10.0, -0.0, -inf(f32), | 9638 | 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), |
| 4147 | }); | 9639 | }); |
| 4148 | try testArgs(@Vector(32, f32), .{ | 9640 | try testArgs(@Vector(32, f32), .{ |
| 4149 | 0.1, tmin(f32), -1.0, 1.0, tmin(f32), -10.0, fmax(f32), 0.0, tmin(f32), 0.1, -1.0, fmax(f32), -nan(f32), -0.0, fmin(f32), 0.0, | 9641 | 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, |
| 4150 | -fmax(f32), fmax(f32), -fmin(f32), -inf(f32), tmin(f32), -nan(f32), -1.0, tmin(f32), -fmin(f32), -inf(f32), nan(f32), -tmin(f32), inf(f32), -inf(f32), -nan(f32), 0.1, | 9642 | -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, |
| 4151 | }, .{ | 9643 | }, .{ |
| 4152 | -fmin(f32), -1.0, fmax(f32), inf(f32), -fmin(f32), fmax(f32), 0.0, -10.0, 0.0, 0.1, fmin(f32), -inf(f32), 1.0, -nan(f32), -nan(f32), | 9644 | -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), |
| 4153 | -inf(f32), -0.0, nan(f32), -fmax(f32), 10.0, -tmin(f32), fmax(f32), -10.0, 0.1, tmin(f32), 0.1, -fmax(f32), 0.0, 0.1, -nan(f32), | 9645 | -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), |
| 4154 | -fmin(f32), fmax(f32), | 9646 | -fmin(f32), fmax(f32), |
| 4155 | }); | 9647 | }); |
| 4156 | try testArgs(@Vector(64, f32), .{ | 9648 | try testArgs(@Vector(64, f32), .{ |
| 4157 | fmin(f32), 0.0, -inf(f32), 0.1, -10.0, -fmin(f32), 10.0, nan(f32), 0.1, 1.0, -1.0, 10.0, 10.0, 0.1, -fmax(f32), -1.0, | 9649 | 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, |
| 4158 | -fmin(f32), 0.1, -inf(f32), -inf(f32), 0.1, 0.1, 0.0, -1.0, nan(f32), -0.0, -0.0, -fmin(f32), -inf(f32), inf(f32), tmin(f32), -nan(f32), | 9650 | -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), |
| 4159 | 0.1, 0.0, 1.0, tmin(f32), 10.0, fmin(f32), -fmin(f32), fmax(f32), nan(f32), 1.0, -nan(f32), -nan(f32), 1.0, nan(f32), 1.0, fmax(f32), | 9651 | 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), |
| 4160 | -0.0, 0.0, inf(f32), nan(f32), tmin(f32), 0.0, fmin(f32), -0.0, -fmin(f32), tmin(f32), -1.0, -10.0, 0.1, -tmin(f32), -inf(f32), -1.0, | 9652 | -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, |
| 4161 | }, .{ | 9653 | }, .{ |
| 4162 | nan(f32), -nan(f32), -tmin(f32), inf(f32), -inf(f32), 0.1, 0.1, 0.1, -1.0, -inf(f32), -0.0, fmax(f32), tmin(f32), -nan(f32), -fmax(f32), -1.0, | 9654 | 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, |
| 4163 | -fmin(f32), -0.0, fmax(f32), -fmax(f32), 1.0, -0.0, 0.0, 10.0, -1.0, -fmin(f32), 0.0, fmax(f32), 0.1, 1.0, 10.0, 0.1, | 9655 | -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, |
| 4164 | 0.1, fmin(f32), -nan(f32), -inf(f32), -0.0, -inf(f32), 0.1, -fmax(f32), -10.0, -10.0, nan(f32), 10.0, -1.0, -fmin(f32), 10.0, fmin(f32), | 9656 | 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), |
| 4165 | 1.0, -fmax(f32), nan(f32), inf(f32), fmax(f32), fmax(f32), -fmin(f32), -inf(f32), -tmin(f32), -nan(f32), nan(f32), nan(f32), 0.1, 0.1, -1.0, inf(f32), | 9657 | 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), |
| 4166 | }); | 9658 | }); |
| 4167 | try testArgs(@Vector(128, f32), .{ | 9659 | try testArgs(@Vector(128, f32), .{ |
| 4168 | -10.0, -nan(f32), inf(f32), inf(f32), -tmin(f32), -0.0, 0.0, 0.1, -0.0, fmin(f32), nan(f32), -1.0, nan(f32), -fmax(f32), nan(f32), 0.0, | 9660 | -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, |
| 4169 | 1.0, -tmin(f32), 0.0, -nan(f32), 0.1, 0.1, -1.0, 10.0, -fmax(f32), -fmin(f32), 0.1, nan(f32), 0.1, -fmax(f32), -tmin(f32), -inf(f32), | 9661 | 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), |
| 4170 | inf(f32), tmin(f32), -tmin(f32), nan(f32), -inf(f32), -10.0, 1.0, -nan(f32), 0.1, nan(f32), -1.0, tmin(f32), -fmin(f32), -0.0, -0.0, 1.0, | 9662 | 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, |
| 4171 | fmin(f32), -fmin(f32), 0.1, 0.1, 0.1, -10.0, -10.0, -tmin(f32), 1.0, -0.0, 10.0, -fmax(f32), 10.0, -fmax(f32), inf(f32), -1.0, | 9663 | 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, |
| 4172 | -fmax(f32), fmin(f32), fmin(f32), fmin(f32), -1.0, -nan(f32), fmax(f32), -nan(f32), 0.1, -1.0, -fmax(f32), -tmin(f32), -0.0, fmax(f32), -10.0, inf(f32), | 9664 | -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), |
| 4173 | 10.0, -inf(f32), 0.1, fmin(f32), nan(f32), -fmax(f32), -tmin(f32), inf(f32), tmin(f32), -fmin(f32), fmax(f32), 1.0, fmin(f32), -0.0, 0.1, fmin(f32), | 9665 | 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), |
| 4174 | 0.1, inf(f32), -10.0, inf(f32), 10.0, tmin(f32), 0.0, 1.0, inf(f32), -10.0, -fmin(f32), tmin(f32), 1.0, 0.1, 0.1, -fmin(f32), | 9666 | 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), |
| 4175 | 10.0, 0.1, fmax(f32), fmin(f32), 1.0, -10.0, -inf(f32), -10.0, 0.0, -fmax(f32), -inf(f32), -1.0, fmax(f32), -tmin(f32), inf(f32), nan(f32), | 9667 | 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), |
| 4176 | }, .{ | 9668 | }, .{ |
| 4177 | -tmin(f32), -fmax(f32), -fmax(f32), 10.0, inf(f32), 0.1, 1.0, fmin(f32), 0.1, 10.0, fmin(f32), -fmax(f32), 1.0, fmax(f32), 0.1, -fmin(f32), | 9669 | -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), |
| 4178 | 0.0, -0.0, -0.0, -1.0, -nan(f32), nan(f32), -tmin(f32), 10.0, -tmin(f32), -10.0, inf(f32), 0.0, tmin(f32), 0.0, -fmax(f32), inf(f32), | 9670 | 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), |
| 4179 | fmin(f32), 0.1, -10.0, tmin(f32), tmin(f32), 0.1, fmin(f32), -tmin(f32), fmin(f32), nan(f32), 0.1, -fmax(f32), -1.0, -0.0, fmin(f32), -0.0, | 9671 | 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, |
| 4180 | -1.0, -0.0, -inf(f32), fmax(f32), -10.0, 1.0, inf(f32), -1.0, -tmin(f32), -tmin(f32), 0.1, -10.0, -fmin(f32), 10.0, -10.0, -inf(f32), | 9672 | -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), |
| 4181 | -1.0, inf(f32), 0.1, 1.0, -nan(f32), 0.1, -10.0, -nan(f32), -tmin(f32), 0.0, fmin(f32), -nan(f32), fmax(f32), -tmin(f32), 0.0, 0.0, | 9673 | -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, |
| 4182 | -fmax(f32), -inf(f32), -1.0, -0.0, 10.0, nan(f32), 0.1, tmin(f32), -10.0, 10.0, tmin(f32), -fmax(f32), 0.1, -10.0, -tmin(f32), fmax(f32), | 9674 | -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), |
| 4183 | -fmax(f32), 0.1, -nan(f32), -fmin(f32), inf(f32), inf(f32), tmin(f32), tmin(f32), -tmin(f32), tmin(f32), 0.0, -0.0, 1.0, 10.0, -10.0, inf(f32), | 9675 | -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), |
| 4184 | 0.0, -fmin(f32), fmax(f32), -10.0, fmax(f32), -0.0, 0.0, -fmin(f32), 10.0, -fmin(f32), -fmin(f32), -fmin(f32), 10.0, fmin(f32), -inf(f32), fmax(f32), | 9676 | 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), |
| 4185 | }); | 9677 | }); |
| 4186 | try testArgs(@Vector(69, f32), .{ | 9678 | try testArgs(@Vector(69, f32), .{ |
| 4187 | nan(f32), 0.1, -tmin(f32), fmax(f32), nan(f32), -fmax(f32), 0.1, fmax(f32), 10.0, inf(f32), -fmin(f32), -fmax(f32), inf(f32), -nan(f32), 0.1, 1.0, | 9679 | 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, |
| 4188 | fmax(f32), 0.1, 10.0, 0.0, -10.0, fmax(f32), 10.0, 0.0, 1.0, 10.0, -fmax(f32), 0.0, -tmin(f32), -fmin(f32), 0.1, 1.0, | 9680 | 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, |
| 4189 | fmin(f32), tmin(f32), -fmin(f32), -tmin(f32), tmin(f32), -inf(f32), -fmax(f32), -0.0, -1.0, -0.0, -fmax(f32), fmax(f32), fmin(f32), -0.0, 0.0, -inf(f32), | 9681 | 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), |
| 4190 | -tmin(f32), inf(f32), -nan(f32), tmin(f32), -1.0, -tmin(f32), 10.0, -inf(f32), -fmin(f32), 0.1, -inf(f32), -1.0, nan(f32), -inf(f32), -tmin(f32), 10.0, | 9682 | -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, |
| 4191 | 10.0, -nan(f32), -nan(f32), tmin(f32), -nan(f32), | 9683 | 1e1, -nan(f32), -nan(f32), tmin(f32), -nan(f32), |
| 4192 | }, .{ | 9684 | }, .{ |
| 4193 | -nan(f32), 1.0, fmax(f32), 0.1, -0.0, 1.0, -inf(f32), -fmin(f32), -nan(f32), inf(f32), 1.0, -nan(f32), -nan(f32), -inf(f32), tmin(f32), -fmin(f32), | 9685 | -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), |
| 4194 | -nan(f32), 0.1, fmin(f32), -1.0, -fmax(f32), 0.1, -1.0, 0.1, 0.1, -tmin(f32), 0.1, 0.1, 10.0, fmin(f32), 0.0, nan(f32), | 9686 | -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), |
| 4195 | tmin(f32), 1.0, nan(f32), -fmin(f32), tmin(f32), nan(f32), 0.1, nan(f32), 1.0, -fmax(f32), tmin(f32), 1.0, 0.0, -1.0, nan(f32), fmin(f32), | 9687 | 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), |
| 4196 | -inf(f32), fmax(f32), -0.0, nan(f32), tmin(f32), tmin(f32), -inf(f32), -10.0, -nan(f32), -fmax(f32), -0.0, 0.1, -inf(f32), 1.0, nan(f32), 1.0, | 9688 | -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, |
| 4197 | -10.0, fmin(f32), inf(f32), fmin(f32), 0.0, | 9689 | -1e1, fmin(f32), inf(f32), fmin(f32), 0.0, |
| 4198 | }); | 9690 | }); |
| 4199 | 9691 | ||
| 4200 | try testArgs(@Vector(1, f64), .{ | 9692 | try testArgs(@Vector(1, f64), .{ |
| 4201 | -0.0, | 9693 | -0.0, |
| 4202 | }, .{ | 9694 | }, .{ |
| 4203 | 1.0, | 9695 | 1e0, |
| 4204 | }); | 9696 | }); |
| 4205 | try testArgs(@Vector(2, f64), .{ | 9697 | try testArgs(@Vector(2, f64), .{ |
| 4206 | -1.0, 0.0, | 9698 | -1e0, 0.0, |
| 4207 | }, .{ | 9699 | }, .{ |
| 4208 | -inf(f64), -fmax(f64), | 9700 | -inf(f64), -fmax(f64), |
| 4209 | }); | 9701 | }); |
| 4210 | try testArgs(@Vector(4, f64), .{ | 9702 | try testArgs(@Vector(4, f64), .{ |
| 4211 | -inf(f64), inf(f64), 10.0, 0.0, | 9703 | -inf(f64), inf(f64), 1e1, 0.0, |
| 4212 | }, .{ | 9704 | }, .{ |
| 4213 | -tmin(f64), 1.0, nan(f64), 0.0, | 9705 | -tmin(f64), 1e0, nan(f64), 0.0, |
| 4214 | }); | 9706 | }); |
| 4215 | try testArgs(@Vector(8, f64), .{ | 9707 | try testArgs(@Vector(8, f64), .{ |
| 4216 | 0.1, -tmin(f64), -fmax(f64), 1.0, inf(f64), -10.0, -tmin(f64), -10.0, | 9708 | 1e-1, -tmin(f64), -fmax(f64), 1e0, inf(f64), -1e1, -tmin(f64), -1e1, |
| 4217 | }, .{ | 9709 | }, .{ |
| 4218 | tmin(f64), fmin(f64), 0.1, 10.0, -0.0, -0.0, fmax(f64), -1.0, | 9710 | tmin(f64), fmin(f64), 1e-1, 1e1, -0.0, -0.0, fmax(f64), -1e0, |
| 4219 | }); | 9711 | }); |
| 4220 | try testArgs(@Vector(16, f64), .{ | 9712 | try testArgs(@Vector(16, f64), .{ |
| 4221 | 0.1, -nan(f64), 1.0, tmin(f64), fmax(f64), -fmax(f64), -tmin(f64), -0.0, -fmin(f64), -1.0, -fmax(f64), -nan(f64), -fmax(f64), nan(f64), -0.0, 0.1, | 9713 | 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, |
| 4222 | }, .{ | 9714 | }, .{ |
| 4223 | -1.0, -tmin(f64), -fmin(f64), 0.1, 0.1, -0.0, -nan(f64), -inf(f64), -inf(f64), -0.0, nan(f64), tmin(f64), 1.0, 0.1, tmin(f64), fmin(f64), | 9715 | -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), |
| 4224 | }); | 9716 | }); |
| 4225 | try testArgs(@Vector(32, f64), .{ | 9717 | try testArgs(@Vector(32, f64), .{ |
| 4226 | -fmax(f64), fmin(f64), 0.1, 0.1, 0.0, 1.0, -0.0, -tmin(f64), tmin(f64), inf(f64), -tmin(f64), -tmin(f64), -tmin(f64), -fmax(f64), fmin(f64), 1.0, | 9718 | -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, |
| 4227 | -fmin(f64), -nan(f64), 1.0, -inf(f64), -nan(f64), -1.0, 0.0, 0.0, nan(f64), -nan(f64), -fmin(f64), fmin(f64), 0.1, nan(f64), tmin(f64), -fmax(f64), | 9719 | -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), |
| 4228 | }, .{ | 9720 | }, .{ |
| 4229 | -tmin(f64), -fmax(f64), -inf(f64), -nan(f64), fmin(f64), -inf(f64), 0.1, -fmax(f64), -inf(f64), fmin(f64), inf(f64), -1.0, -tmin(f64), inf(f64), 0.1, nan(f64), | 9721 | -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), |
| 4230 | fmin(f64), 10.0, -tmin(f64), -nan(f64), -inf(f64), 1.0, nan(f64), -fmin(f64), -1.0, nan(f64), -1.0, 0.0, 1.0, nan(f64), -1.0, -fmin(f64), | 9722 | 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), |
| 4231 | }); | 9723 | }); |
| 4232 | try testArgs(@Vector(64, f64), .{ | 9724 | try testArgs(@Vector(64, f64), .{ |
| 4233 | -10.0, fmax(f64), -nan(f64), tmin(f64), 0.1, -1.0, 1.0, -0.0, -fmin(f64), 0.1, -fmin(f64), -0.0, -0.0, tmin(f64), -10.0, 0.1, | 9725 | -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, |
| 4234 | -10.0, -fmax(f64), -10.0, -fmin(f64), 0.0, -10.0, nan(f64), 1.0, inf(f64), inf(f64), -inf(f64), tmin(f64), tmin(f64), 0.1, -0.0, 0.1, | 9726 | -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, |
| 4235 | -0.0, 0.1, -10.0, 10.0, fmax(f64), -fmin(f64), 1.0, fmax(f64), 1.0, -10.0, fmin(f64), fmax(f64), -1.0, -0.0, -0.0, fmax(f64), | 9727 | -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), |
| 4236 | -inf(f64), -inf(f64), -tmin(f64), -fmax(f64), -nan(f64), tmin(f64), -1.0, 0.0, -inf(f64), fmax(f64), nan(f64), -inf(f64), fmin(f64), -nan(f64), -nan(f64), -10.0, | 9728 | -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, |
| 4237 | }, .{ | 9729 | }, .{ |
| 4238 | nan(f64), -1.0, 0.0, -10.0, -fmax(f64), -fmin(f64), -nan(f64), -tmin(f64), 0.1, -1.0, -nan(f64), -fmax(f64), 0.0, 0.0, 10.0, inf(f64), | 9730 | 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), |
| 4239 | fmin(f64), 0.0, -10.0, 1.0, -tmin(f64), -inf(f64), -fmax(f64), 0.0, -fmin(f64), -1.0, -fmin(f64), tmin(f64), 1.0, -10.0, fmin(f64), 0.1, | 9731 | 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, |
| 4240 | inf(f64), -0.0, tmin(f64), -fmax(f64), -tmin(f64), -fmax(f64), fmin(f64), -fmax(f64), 0.1, 1.0, 1.0, 0.0, fmin(f64), nan(f64), -10.0, tmin(f64), | 9732 | 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), |
| 4241 | inf(f64), 0.1, 1.0, -nan(f64), 1.0, -fmin(f64), fmax(f64), inf(f64), fmin(f64), -inf(f64), -0.0, 0.0, -1.0, -0.0, 0.1, 0.1, | 9733 | 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, |
| 4242 | }); | 9734 | }); |
| 4243 | try testArgs(@Vector(128, f64), .{ | 9735 | try testArgs(@Vector(128, f64), .{ |
| 4244 | nan(f64), -fmin(f64), fmax(f64), fmin(f64), -10.0, nan(f64), tmin(f64), fmax(f64), inf(f64), -nan(f64), tmin(f64), -nan(f64), -0.0, fmin(f64), fmax(f64), | 9736 | 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), |
| 4245 | -inf(f64), inf(f64), -1.0, 0.0, 0.1, fmin(f64), 0.0, 0.1, -1.0, -inf(f64), 0.1, fmax(f64), fmin(f64), fmax(f64), -fmax(f64), | 9737 | -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), |
| 4246 | fmin(f64), inf(f64), -fmin(f64), -10.0, -0.0, 0.1, nan(f64), -fmax(f64), -fmax(f64), -1.0, 10.0, 10.0, -1.0, -inf(f64), inf(f64), | 9738 | 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), |
| 4247 | -fmin(f64), 1.0, -inf(f64), -10.0, 0.1, 1.0, 10.0, 10.0, tmin(f64), nan(f64), inf(f64), 0.0, -1.0, -10.0, 1.0, | 9739 | -fmin(f64), 1e0, -inf(f64), -1e1, 1e-1, 1e0, 1e1, 1e1, tmin(f64), nan(f64), inf(f64), 0.0, -1e0, -1e1, 1e0, |
| 4248 | -tmin(f64), -fmax(f64), -nan(f64), 10.0, 0.1, tmin(f64), 0.0, 10.0, 0.1, -tmin(f64), -tmin(f64), 1.0, -fmax(f64), nan(f64), -fmin(f64), | 9740 | -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), |
| 4249 | nan(f64), 10.0, -1.0, -0.0, -tmin(f64), nan(f64), 10.0, 10.0, -inf(f64), 0.1, -nan(f64), -10.0, -tmin(f64), -fmax(f64), -fmax(f64), | 9741 | 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), |
| 4250 | inf(f64), -inf(f64), tmin(f64), 1.0, -inf(f64), -10.0, inf(f64), 0.1, -nan(f64), -inf(f64), fmax(f64), 0.1, -inf(f64), 0.1, 1.0, | 9742 | 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, |
| 4251 | 0.1, 0.1, 0.1, inf(f64), -inf(f64), 1.0, 10.0, 10.0, nan(f64), 10.0, -tmin(f64), 1.0, -fmin(f64), -1.0, -fmax(f64), | 9743 | 1e-1, 1e-1, 1e-1, inf(f64), -inf(f64), 1e0, 1e1, 1e1, nan(f64), 1e1, -tmin(f64), 1e0, -fmin(f64), -1e0, -fmax(f64), |
| 4252 | -fmin(f64), -fmin(f64), -1.0, inf(f64), nan(f64), tmin(f64), 0.1, -1.0, | 9744 | -fmin(f64), -fmin(f64), -1e0, inf(f64), nan(f64), tmin(f64), 1e-1, -1e0, |
| 4253 | }, .{ | 9745 | }, .{ |
| 4254 | 0.0, 0.0, inf(f64), -0.0, 0.1, -nan(f64), 10.0, -nan(f64), tmin(f64), -10.0, -0.0, inf(f64), -fmin(f64), 0.1, fmax(f64), | 9746 | 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), |
| 4255 | nan(f64), -tmin(f64), tmin(f64), 1.0, 0.1, -10.0, -nan(f64), 1.0, inf(f64), -10.0, fmin(f64), 0.1, 10.0, -10.0, 10.0, | 9747 | nan(f64), -tmin(f64), tmin(f64), 1e0, 1e-1, -1e1, -nan(f64), 1e0, inf(f64), -1e1, fmin(f64), 1e-1, 1e1, -1e1, 1e1, |
| 4256 | -nan(f64), -nan(f64), 0.1, 0.0, 10.0, -fmax(f64), -tmin(f64), tmin(f64), -1.0, -tmin(f64), -10.0, 0.1, -fmax(f64), 10.0, nan(f64), | 9748 | -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), |
| 4257 | fmax(f64), -1.0, -1.0, -tmin(f64), fmax(f64), -10.0, 0.1, 1.0, fmin(f64), inf(f64), 0.1, tmin(f64), 0.1, -fmax(f64), fmax(f64), | 9749 | 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), |
| 4258 | -10.0, -fmax(f64), fmax(f64), tmin(f64), -fmin(f64), inf(f64), 0.1, -0.0, fmax(f64), tmin(f64), 0.1, 1.0, -inf(f64), 1.0, 10.0, | 9750 | -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, |
| 4259 | 0.1, 0.0, -10.0, -nan(f64), 10.0, -fmin(f64), -tmin(f64), 10.0, 1.0, -tmin(f64), -1.0, -fmin(f64), -0.0, -10.0, 0.1, | 9751 | 1e-1, 0.0, -1e1, -nan(f64), 1e1, -fmin(f64), -tmin(f64), 1e1, 1e0, -tmin(f64), -1e0, -fmin(f64), -0.0, -1e1, 1e-1, |
| 4260 | inf(f64), -fmax(f64), 0.1, tmin(f64), -0.0, fmax(f64), 0.0, -nan(f64), -fmin(f64), fmax(f64), -0.0, nan(f64), -inf(f64), tmin(f64), 0.1, | 9752 | 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, |
| 4261 | inf(f64), 0.0, 10.0, -fmax(f64), tmin(f64), -0.0, fmin(f64), -nan(f64), -10.0, -inf(f64), nan(f64), inf(f64), -0.0, 10.0, fmax(f64), | 9753 | 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), |
| 4262 | tmin(f64), -10.0, -nan(f64), 10.0, -inf(f64), -fmax(f64), -inf(f64), -1.0, | 9754 | tmin(f64), -1e1, -nan(f64), 1e1, -inf(f64), -fmax(f64), -inf(f64), -1e0, |
| 4263 | }); | 9755 | }); |
| 4264 | try testArgs(@Vector(69, f64), .{ | 9756 | try testArgs(@Vector(69, f64), .{ |
| 4265 | inf(f64), -0.0, -fmax(f64), fmax(f64), fmax(f64), 0.0, fmin(f64), -nan(f64), 0.1, 0.1, 0.1, -fmin(f64), inf(f64), 0.1, fmax(f64), nan(f64), | 9757 | 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), |
| 4266 | tmin(f64), -10.0, 10.0, -tmin(f64), -0.0, nan(f64), -10.0, fmin(f64), 0.0, -0.0, 0.1, inf(f64), -tmin(f64), -nan(f64), inf(f64), -nan(f64), | 9758 | 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), |
| 4267 | -inf(f64), fmax(f64), 0.1, -fmin(f64), 0.1, -1.0, fmin(f64), fmin(f64), fmin(f64), 10.0, -fmin(f64), nan(f64), 0.0, 0.0, 10.0, nan(f64), | 9759 | -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), |
| 4268 | -tmin(f64), tmin(f64), tmin(f64), fmin(f64), -0.0, -1.0, 0.1, 1.0, fmax(f64), tmin(f64), fmin(f64), 0.0, -fmin(f64), fmin(f64), -tmin(f64), 0.0, | 9760 | -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, |
| 4269 | -nan(f64), 10.0, -1.0, 0.1, 0.0, | 9761 | -nan(f64), 1e1, -1e0, 1e-1, 0.0, |
| 4270 | }, .{ | 9762 | }, .{ |
| 4271 | -10.0, -0.0, fmin(f64), -fmin(f64), nan(f64), 10.0, -tmin(f64), -fmax(f64), 10.0, 0.1, -fmin(f64), inf(f64), -inf(f64), -tmin(f64), 1.0, tmin(f64), | 9763 | -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), |
| 4272 | -tmin(f64), -nan(f64), fmax(f64), 0.0, -1.0, 10.0, inf(f64), fmin(f64), fmax(f64), 0.1, 0.1, fmax(f64), -inf(f64), 0.1, 0.1, fmin(f64), | 9764 | -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), |
| 4273 | 0.1, fmin(f64), -10.0, nan(f64), 0.0, 0.0, fmax(f64), -inf(f64), tmin(f64), inf(f64), -tmin(f64), fmax(f64), -inf(f64), -10.0, -1.0, fmin(f64), | 9765 | 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), |
| 4274 | 0.1, -nan(f64), fmax(f64), -fmin(f64), fmax(f64), nan(f64), -0.0, -fmax(f64), 10.0, nan(f64), inf(f64), -1.0, -fmin(f64), nan(f64), -fmin(f64), -0.0, | 9766 | 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, |
| 4275 | -nan(f64), -fmin(f64), 0.1, nan(f64), 0.1, | 9767 | -nan(f64), -fmin(f64), 1e-1, nan(f64), 1e-1, |
| 4276 | }); | 9768 | }); |
| 4277 | 9769 | ||
| 4278 | try testArgs(@Vector(1, f80), .{ | 9770 | try testArgs(@Vector(1, f80), .{ |
| 4279 | -nan(f80), | 9771 | -nan(f80), |
| 4280 | }, .{ | 9772 | }, .{ |
| 4281 | -1.0, | 9773 | -1e0, |
| 4282 | }); | 9774 | }); |
| 4283 | try testArgs(@Vector(2, f80), .{ | 9775 | try testArgs(@Vector(2, f80), .{ |
| 4284 | -fmax(f80), -inf(f80), | 9776 | -fmax(f80), -inf(f80), |
| 4285 | }, .{ | 9777 | }, .{ |
| 4286 | 0.1, 10.0, | 9778 | 1e-1, 1e1, |
| 4287 | }); | 9779 | }); |
| 4288 | try testArgs(@Vector(4, f80), .{ | 9780 | try testArgs(@Vector(4, f80), .{ |
| 4289 | -0.0, -inf(f80), 0.1, 10.0, | 9781 | -0.0, -inf(f80), 1e-1, 1e1, |
| 4290 | }, .{ | 9782 | }, .{ |
| 4291 | -1.0, 0.0, 0.1, -10.0, | 9783 | -1e0, 0.0, 1e-1, -1e1, |
| 4292 | }); | 9784 | }); |
| 4293 | try testArgs(@Vector(8, f80), .{ | 9785 | try testArgs(@Vector(8, f80), .{ |
| 4294 | 1.0, -0.0, -inf(f80), 0.1, -inf(f80), fmin(f80), 0.0, 10.0, | 9786 | 1e0, -0.0, -inf(f80), 1e-1, -inf(f80), fmin(f80), 0.0, 1e1, |
| 4295 | }, .{ | 9787 | }, .{ |
| 4296 | -0.0, -fmin(f80), fmin(f80), -nan(f80), nan(f80), inf(f80), fmin(f80), 10.0, | 9788 | -0.0, -fmin(f80), fmin(f80), -nan(f80), nan(f80), inf(f80), fmin(f80), 1e1, |
| 4297 | }); | 9789 | }); |
| 4298 | try testArgs(@Vector(16, f80), .{ | 9790 | try testArgs(@Vector(16, f80), .{ |
| 4299 | 10.0, inf(f80), -fmin(f80), 0.1, -tmin(f80), -0.0, -inf(f80), -1.0, -fmax(f80), -nan(f80), -tmin(f80), 10.0, 10.0, -inf(f80), -fmax(f80), fmax(f80), | 9791 | 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), |
| 4300 | }, .{ | 9792 | }, .{ |
| 4301 | -inf(f80), nan(f80), -fmax(f80), fmin(f80), 1.0, 0.1, -inf(f80), nan(f80), 0.1, nan(f80), -inf(f80), nan(f80), tmin(f80), 0.1, -tmin(f80), -10.0, | 9793 | -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, |
| 4302 | }); | 9794 | }); |
| 4303 | try testArgs(@Vector(32, f80), .{ | 9795 | try testArgs(@Vector(32, f80), .{ |
| 4304 | inf(f80), -0.0, 0.1, -0.0, 0.1, -fmin(f80), -0.0, fmax(f80), nan(f80), -tmin(f80), nan(f80), -10.0, 0.0, 1.0, 10.0, -fmin(f80), | 9796 | 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), |
| 4305 | fmin(f80), 0.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), 1.0, tmin(f80), | 9797 | 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), |
| 4306 | }, .{ | 9798 | }, .{ |
| 4307 | 0.0, -10.0, fmax(f80), -inf(f80), 0.1, -inf(f80), inf(f80), 10.0, -1.0, -10.0, -fmin(f80), 0.0, inf(f80), 1.0, -nan(f80), 0.0, | 9799 | 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, |
| 4308 | 0.1, nan(f80), 1.0, -fmax(f80), fmin(f80), -inf(f80), -fmax(f80), 0.1, -10.0, tmin(f80), fmax(f80), -0.0, -fmin(f80), -fmin(f80), fmin(f80), -tmin(f80), | 9800 | 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), |
| 4309 | }); | 9801 | }); |
| 4310 | try testArgs(@Vector(64, f80), .{ | 9802 | try testArgs(@Vector(64, f80), .{ |
| 4311 | -fmax(f80), 0.1, -1.0, 1.0, inf(f80), 0.1, -10.0, 0.1, fmin(f80), -fmin(f80), -10.0, -fmax(f80), 0.0, -10.0, -1.0, -nan(f80), | 9803 | -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), |
| 4312 | 0.0, 0.1, -1.0, -tmin(f80), 1.0, tmin(f80), fmax(f80), 0.0, -10.0, -tmin(f80), fmax(f80), -0.0, 0.1, -inf(f80), -fmax(f80), -1.0, | 9804 | 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, |
| 4313 | -nan(f80), tmin(f80), -tmin(f80), -0.0, -0.0, -1.0, -0.0, fmax(f80), inf(f80), -nan(f80), 0.1, -inf(f80), -tmin(f80), nan(f80), 0.1, 10.0, | 9805 | -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, |
| 4314 | nan(f80), -inf(f80), 0.1, tmin(f80), -fmin(f80), 10.0, -10.0, tmin(f80), fmin(f80), nan(f80), 0.1, -nan(f80), tmin(f80), nan(f80), fmax(f80), -fmax(f80), | 9806 | 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), |
| 4315 | }, .{ | 9807 | }, .{ |
| 4316 | -nan(f80), -fmax(f80), tmin(f80), -inf(f80), -tmin(f80), fmin(f80), -nan(f80), -fmin(f80), fmax(f80), inf(f80), -0.0, -1.0, 0.1, -fmax(f80), 1.0, -inf(f80), | 9808 | -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), |
| 4317 | 0.0, -nan(f80), -10.0, -1.0, -nan(f80), inf(f80), 1.0, -nan(f80), 10.0, inf(f80), tmin(f80), 0.1, tmin(f80), -tmin(f80), -inf(f80), -fmin(f80), | 9809 | 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), |
| 4318 | fmax(f80), fmax(f80), 0.1, -tmin(f80), -nan(f80), -1.0, fmin(f80), -nan(f80), -nan(f80), inf(f80), -1.0, 0.1, -fmin(f80), -tmin(f80), 0.0, -0.0, | 9810 | 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, |
| 4319 | 0.1, -fmin(f80), -inf(f80), -1.0, -tmin(f80), 1.0, -inf(f80), -0.0, 0.0, 1.0, tmin(f80), 0.0, 0.1, -nan(f80), fmax(f80), 1.0, | 9811 | 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, |
| 4320 | }); | 9812 | }); |
| 4321 | try testArgs(@Vector(128, f80), .{ | 9813 | try testArgs(@Vector(128, f80), .{ |
| 4322 | 0.1, -0.0, 0.1, 0.0, fmin(f80), -1.0, 1.0, -inf(f80), fmax(f80), -fmin(f80), nan(f80), 10.0, 0.1, 0.1, -fmin(f80), -inf(f80), | 9814 | 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), |
| 4323 | -1.0, -inf(f80), 1.0, -fmin(f80), inf(f80), -nan(f80), 10.0, inf(f80), tmin(f80), nan(f80), -10.0, inf(f80), 10.0, inf(f80), -10.0, 0.0, | 9815 | -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, |
| 4324 | -10.0, fmin(f80), -tmin(f80), 1.0, -fmax(f80), nan(f80), 0.0, fmax(f80), 0.1, -1.0, -fmin(f80), inf(f80), -tmin(f80), nan(f80), -tmin(f80), 10.0, | 9816 | -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, |
| 4325 | -10.0, -tmin(f80), -1.0, -tmin(f80), -fmax(f80), 10.0, -1.0, -inf(f80), -nan(f80), 0.0, 1.0, fmax(f80), -tmin(f80), -fmin(f80), fmin(f80), fmin(f80), | 9817 | -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), |
| 4326 | -10.0, -fmax(f80), -tmin(f80), inf(f80), 1.0, 0.0, tmin(f80), -nan(f80), -fmin(f80), 0.1, -nan(f80), 0.0, 0.1, -10.0, -0.0, -nan(f80), | 9818 | -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), |
| 4327 | 1.0, 10.0, -10.0, fmin(f80), -nan(f80), fmax(f80), -0.0, 1.0, inf(f80), 1.0, -fmin(f80), -fmin(f80), 0.0, 0.1, inf(f80), 10.0, | 9819 | 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, |
| 4328 | tmin(f80), -1.0, fmax(f80), -0.0, fmax(f80), fmax(f80), 0.1, -fmin(f80), -10.0, 1.0, -fmin(f80), -fmax(f80), fmin(f80), -fmax(f80), -0.0, -1.0, | 9820 | 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, |
| 4329 | -nan(f80), -inf(f80), nan(f80), -fmax(f80), inf(f80), -inf(f80), -nan(f80), fmin(f80), nan(f80), -1.0, tmin(f80), tmin(f80), 0.1, 10.0, -tmin(f80), -nan(f80), | 9821 | -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), |
| 4330 | }, .{ | 9822 | }, .{ |
| 4331 | -1.0, -0.0, 0.0, fmax(f80), -1.0, -0.0, 0.1, tmin(f80), -inf(f80), 10.0, -0.0, 0.1, -tmin(f80), -fmax(f80), tmin(f80), inf(f80), | 9823 | -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), |
| 4332 | 0.1, 1.0, tmin(f80), nan(f80), -fmax(f80), 10.0, fmin(f80), -1.0, -fmax(f80), nan(f80), -fmin(f80), 10.0, -1.0, tmin(f80), inf(f80), -0.0, | 9824 | 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, |
| 4333 | tmin(f80), 1.0, 0.0, -fmin(f80), 0.0, 10.0, -fmax(f80), -0.0, -inf(f80), fmin(f80), -0.0, -0.0, -0.0, -fmax(f80), 0.1, fmax(f80), | 9825 | 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), |
| 4334 | -tmin(f80), tmin(f80), -fmax(f80), 10.0, -fmax(f80), 0.1, fmax(f80), -10.0, 0.1, 1.0, -1.0, -1.0, nan(f80), -nan(f80), 10.0, -nan(f80), | 9826 | -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), |
| 4335 | nan(f80), -10.0, -tmin(f80), fmin(f80), -tmin(f80), -fmin(f80), tmin(f80), -0.0, 0.1, fmax(f80), tmin(f80), tmin(f80), nan(f80), 0.1, 10.0, 0.1, | 9827 | 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, |
| 4336 | inf(f80), inf(f80), 1.0, -inf(f80), -fmax(f80), 0.0, 1.0, -fmax(f80), fmax(f80), nan(f80), fmin(f80), 0.1, -1.0, 1.0, 0.1, -tmin(f80), | 9828 | 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), |
| 4337 | 10.0, 0.1, -fmax(f80), 0.0, nan(f80), -tmin(f80), 0.1, fmax(f80), fmax(f80), 0.1, -1.0, inf(f80), nan(f80), 10.0, fmax(f80), -nan(f80), | 9829 | 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), |
| 4338 | -10.0, -1.0, tmin(f80), fmin(f80), inf(f80), fmax(f80), -fmin(f80), fmin(f80), -inf(f80), -tmin(f80), 1.0, nan(f80), -fmin(f80), -fmin(f80), fmax(f80), 1.0, | 9830 | -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, |
| 4339 | }); | 9831 | }); |
| 4340 | try testArgs(@Vector(69, f80), .{ | 9832 | try testArgs(@Vector(69, f80), .{ |
| 4341 | -10.0, tmin(f80), 0.1, -nan(f80), -inf(f80), -nan(f80), fmin(f80), -0.0, 10.0, fmax(f80), -fmin(f80), 0.1, -nan(f80), inf(f80), 1.0, -1.0, | 9833 | -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, |
| 4342 | inf(f80), fmin(f80), -fmax(f80), 0.1, nan(f80), 0.0, 0.0, nan(f80), -10.0, fmax(f80), fmin(f80), -fmax(f80), 1.0, 0.1, 0.0, -fmin(f80), | 9834 | 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), |
| 4343 | -tmin(f80), 0.0, -10.0, fmin(f80), 1.0, 10.0, 0.1, nan(f80), -10.0, fmax(f80), 0.1, fmin(f80), -inf(f80), 0.0, tmin(f80), inf(f80), | 9835 | -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), |
| 4344 | fmax(f80), 1.0, 0.1, nan(f80), inf(f80), tmin(f80), tmin(f80), -fmax(f80), 0.0, fmin(f80), -inf(f80), 0.1, -tmin(f80), 0.1, -1.0, 0.1, | 9836 | 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, |
| 4345 | -fmax(f80), -1.0, 0.1, -1.0, fmax(f80), | 9837 | -fmax(f80), -1e0, 1e-1, -1e0, fmax(f80), |
| 4346 | }, .{ | 9838 | }, .{ |
| 4347 | -1.0, fmin(f80), inf(f80), -nan(f80), -0.0, fmin(f80), -0.0, nan(f80), -fmax(f80), 0.1, 1.0, -10.0, -tmin(f80), -fmin(f80), 10.0, inf(f80), | 9839 | -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), |
| 4348 | -10.0, -tmin(f80), -fmin(f80), 10.0, 0.0, -tmin(f80), 10.0, -10.0, 0.1, 0.1, tmin(f80), fmax(f80), 0.0, 0.1, 0.1, -10.0, | 9840 | -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, |
| 4349 | fmin(f80), nan(f80), -10.0, -10.0, -10.0, 0.0, -0.0, 0.1, fmin(f80), fmin(f80), -0.0, -fmin(f80), -nan(f80), -inf(f80), 0.0, -inf(f80), | 9841 | 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), |
| 4350 | inf(f80), fmax(f80), -tmin(f80), inf(f80), 0.1, -nan(f80), 0.1, tmin(f80), -10.0, -fmax(f80), -fmax(f80), inf(f80), -nan(f80), 1.0, -inf(f80), 10.0, | 9842 | 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, |
| 4351 | nan(f80), 10.0, -10.0, 0.0, -fmin(f80), | 9843 | nan(f80), 1e1, -1e1, 0.0, -fmin(f80), |
| 4352 | }); | 9844 | }); |
| 4353 | 9845 | ||
| 4354 | try testArgs(@Vector(1, f128), .{ | 9846 | try testArgs(@Vector(1, f128), .{ |
| ... | @@ -4359,76 +9851,76 @@ fn binary(comptime op: anytype, comptime opts: struct { strict: bool = false }) | ... | @@ -4359,76 +9851,76 @@ fn binary(comptime op: anytype, comptime opts: struct { strict: bool = false }) |
| 4359 | try testArgs(@Vector(2, f128), .{ | 9851 | try testArgs(@Vector(2, f128), .{ |
| 4360 | 0.0, -inf(f128), | 9852 | 0.0, -inf(f128), |
| 4361 | }, .{ | 9853 | }, .{ |
| 4362 | 0.1, -fmin(f128), | 9854 | 1e-1, -fmin(f128), |
| 4363 | }); | 9855 | }); |
| 4364 | try testArgs(@Vector(4, f128), .{ | 9856 | try testArgs(@Vector(4, f128), .{ |
| 4365 | 0.1, fmax(f128), 10.0, -fmax(f128), | 9857 | 1e-1, fmax(f128), 1e1, -fmax(f128), |
| 4366 | }, .{ | 9858 | }, .{ |
| 4367 | -tmin(f128), fmax(f128), -0.0, -0.0, | 9859 | -tmin(f128), fmax(f128), -0.0, -0.0, |
| 4368 | }); | 9860 | }); |
| 4369 | try testArgs(@Vector(8, f128), .{ | 9861 | try testArgs(@Vector(8, f128), .{ |
| 4370 | 10.0, -fmin(f128), 0.0, -inf(f128), 10.0, -0.0, -1.0, -fmin(f128), | 9862 | 1e1, -fmin(f128), 0.0, -inf(f128), 1e1, -0.0, -1e0, -fmin(f128), |
| 4371 | }, .{ | 9863 | }, .{ |
| 4372 | fmin(f128), tmin(f128), -1.0, -10.0, 0.0, -tmin(f128), 0.0, 0.1, | 9864 | fmin(f128), tmin(f128), -1e0, -1e1, 0.0, -tmin(f128), 0.0, 1e-1, |
| 4373 | }); | 9865 | }); |
| 4374 | try testArgs(@Vector(16, f128), .{ | 9866 | try testArgs(@Vector(16, f128), .{ |
| 4375 | -fmin(f128), -10.0, -fmin(f128), 0.1, -10.0, 1.0, -fmax(f128), tmin(f128), -nan(f128), -tmin(f128), 10.0, -inf(f128), -1.0, tmin(f128), -0.0, nan(f128), | 9867 | -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), |
| 4376 | }, .{ | 9868 | }, .{ |
| 4377 | -fmax(f128), fmin(f128), inf(f128), tmin(f128), -10.0, 10.0, fmax(f128), 1.0, -inf(f128), -inf(f128), -fmax(f128), -nan(f128), 1.0, -inf(f128), tmin(f128), tmin(f128), | 9869 | -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), |
| 4378 | }); | 9870 | }); |
| 4379 | try testArgs(@Vector(32, f128), .{ | 9871 | try testArgs(@Vector(32, f128), .{ |
| 4380 | -0.0, -1.0, 1.0, -fmax(f128), -fmax(f128), 0.1, -fmin(f128), -fmin(f128), -1.0, -tmin(f128), -0.0, -fmax(f128), tmin(f128), inf(f128), 0.0, fmax(f128), | 9872 | -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), |
| 4381 | -nan(f128), -0.0, -inf(f128), -1.0, 0.1, -fmin(f128), tmin(f128), -10.0, fmax(f128), -nan(f128), -nan(f128), -fmax(f128), 0.1, inf(f128), -0.0, tmin(f128), | 9873 | -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), |
| 4382 | }, .{ | 9874 | }, .{ |
| 4383 | -1.0, -10.0, -fmin(f128), -fmin(f128), inf(f128), tmin(f128), nan(f128), 0.0, -fmin(f128), 0.1, -nan(f128), 0.1, -0.0, tmin(f128), 1.0, 0.0, | 9875 | -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, |
| 4384 | fmin(f128), fmax(f128), -fmax(f128), -tmin(f128), fmin(f128), -0.0, -1.0, -nan(f128), -inf(f128), 1.0, nan(f128), 1.0, 0.1, -0.0, -fmax(f128), -10.0, | 9876 | 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, |
| 4385 | }); | 9877 | }); |
| 4386 | try testArgs(@Vector(64, f128), .{ | 9878 | try testArgs(@Vector(64, f128), .{ |
| 4387 | -1.0, -0.0, nan(f128), 0.1, -10.0, 0.0, 1.0, 1.0, -inf(f128), fmin(f128), fmax(f128), nan(f128), -nan(f128), inf(f128), -0.0, | 9879 | -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, |
| 4388 | 0.1, -inf(f128), -fmax(f128), 10.0, -tmin(f128), -tmin(f128), -fmax(f128), 1.0, 0.1, 0.1, nan(f128), 10.0, 1.0, -tmin(f128), 10.0, | 9880 | 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, |
| 4389 | -nan(f128), fmax(f128), fmax(f128), 0.0, fmax(f128), inf(f128), 1.0, -0.0, 0.1, -tmin(f128), fmin(f128), fmax(f128), tmin(f128), inf(f128), -10.0, | 9881 | -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, |
| 4390 | -1.0, -1.0, -1.0, -inf(f128), 10.0, -tmin(f128), nan(f128), nan(f128), 0.1, fmin(f128), 0.1, tmin(f128), -10.0, 0.1, 10.0, | 9882 | -1e0, -1e0, -1e0, -inf(f128), 1e1, -tmin(f128), nan(f128), nan(f128), 1e-1, fmin(f128), 1e-1, tmin(f128), -1e1, 1e-1, 1e1, |
| 4391 | fmax(f128), fmax(f128), 0.1, -fmax(f128), | 9883 | fmax(f128), fmax(f128), 1e-1, -fmax(f128), |
| 4392 | }, .{ | 9884 | }, .{ |
| 4393 | -0.0, 0.1, -0.0, -fmin(f128), 10.0, 0.0, 1.0, -inf(f128), tmin(f128), -1.0, fmin(f128), -nan(f128), -10.0, 0.1, -10.0, 0.1, | 9885 | -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, |
| 4394 | 0.1, tmin(f128), nan(f128), -1.0, 0.0, -10.0, -10.0, fmax(f128), -fmax(f128), inf(f128), -nan(f128), 0.1, -nan(f128), 1.0, fmax(f128), inf(f128), | 9886 | 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), |
| 4395 | nan(f128), fmin(f128), 10.0, inf(f128), 0.0, -inf(f128), 0.1, 0.1, 0.1, -1.0, 0.1, -10.0, inf(f128), -nan(f128), 0.1, inf(f128), | 9887 | 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), |
| 4396 | inf(f128), inf(f128), -10.0, -tmin(f128), 0.1, -inf(f128), -fmin(f128), 1.0, -tmin(f128), 1.0, -tmin(f128), -inf(f128), -0.0, -nan(f128), -1.0, -fmax(f128), | 9888 | 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), |
| 4397 | }); | 9889 | }); |
| 4398 | try testArgs(@Vector(128, f128), .{ | 9890 | try testArgs(@Vector(128, f128), .{ |
| 4399 | -inf(f128), tmin(f128), -fmax(f128), 1.0, fmin(f128), -fmax(f128), -1.0, 0.1, -fmax(f128), -fmin(f128), -10.0, nan(f128), 0.1, nan(f128), | 9891 | -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), |
| 4400 | inf(f128), -1.0, tmin(f128), -inf(f128), 0.0, fmax(f128), tmin(f128), -fmin(f128), fmin(f128), -10.0, -fmin(f128), -10.0, 1.0, -nan(f128), | 9892 | inf(f128), -1e0, tmin(f128), -inf(f128), 0.0, fmax(f128), tmin(f128), -fmin(f128), fmin(f128), -1e1, -fmin(f128), -1e1, 1e0, -nan(f128), |
| 4401 | -inf(f128), fmin(f128), inf(f128), -tmin(f128), 0.1, 0.0, 10.0, 1.0, -tmin(f128), -tmin(f128), tmin(f128), 1.0, fmin(f128), 0.1, | 9893 | -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, |
| 4402 | 0.1, 0.1, fmax(f128), 0.1, inf(f128), 0.0, fmin(f128), -fmin(f128), 10.0, 10.0, -10.0, tmin(f128), inf(f128), inf(f128), | 9894 | 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), |
| 4403 | -fmin(f128), 0.0, 0.1, -nan(f128), 0.1, -inf(f128), -nan(f128), -1.0, fmin(f128), -0.0, 10.0, -tmin(f128), 10.0, 1.0, | 9895 | -fmin(f128), 0.0, 1e-1, -nan(f128), 1e-1, -inf(f128), -nan(f128), -1e0, fmin(f128), -0.0, 1e1, -tmin(f128), 1e1, 1e0, |
| 4404 | 0.1, -0.0, -tmin(f128), 0.1, -1.0, -tmin(f128), -fmin(f128), tmin(f128), 0.1, -tmin(f128), -nan(f128), -10.0, -inf(f128), 0.0, | 9896 | 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, |
| 4405 | 0.1, 0.0, -fmin(f128), 0.0, 10.0, 10.0, tmin(f128), inf(f128), -nan(f128), -inf(f128), -1.0, -fmin(f128), -10.0, -fmin(f128), | 9897 | 1e-1, 0.0, -fmin(f128), 0.0, 1e1, 1e1, tmin(f128), inf(f128), -nan(f128), -inf(f128), -1e0, -fmin(f128), -1e1, -fmin(f128), |
| 4406 | -inf(f128), -fmax(f128), tmin(f128), tmin(f128), -fmin(f128), 0.1, fmin(f128), fmin(f128), -fmin(f128), nan(f128), -1.0, -0.0, -0.0, 0.1, | 9898 | -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, |
| 4407 | fmax(f128), 0.0, -fmax(f128), nan(f128), nan(f128), nan(f128), nan(f128), -nan(f128), fmin(f128), -inf(f128), inf(f128), -fmax(f128), -10.0, fmin(f128), | 9899 | 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), |
| 4408 | 0.1, fmax(f128), | 9900 | 1e-1, fmax(f128), |
| 4409 | }, .{ | 9901 | }, .{ |
| 4410 | 0.0, 10.0, 0.1, inf(f128), -0.0, -1.0, nan(f128), -10.0, -inf(f128), 0.1, -tmin(f128), 1.0, inf(f128), 0.1, -1.0, | 9902 | 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, |
| 4411 | 10.0, 0.0, 1.0, nan(f128), tmin(f128), fmax(f128), 10.0, 0.1, 0.1, -fmin(f128), -inf(f128), -nan(f128), -fmin(f128), -0.0, -inf(f128), | 9903 | 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), |
| 4412 | -nan(f128), fmax(f128), -fmin(f128), -tmin(f128), -fmin(f128), -fmax(f128), nan(f128), fmin(f128), -fmax(f128), fmax(f128), 1.0, 10.0, -fmax(f128), nan(f128), -fmax(f128), | 9904 | -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), |
| 4413 | -inf(f128), nan(f128), -nan(f128), tmin(f128), -1.0, 0.1, 0.1, -1.0, -nan(f128), fmax(f128), 10.0, -inf(f128), 10.0, -0.0, -1.0, | 9905 | -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, |
| 4414 | -0.0, -tmin(f128), 10.0, -1.0, -fmax(f128), fmin(f128), fmax(f128), tmin(f128), 10.0, fmin(f128), -nan(f128), 1.0, -tmin(f128), -1.0, fmax(f128), | 9906 | -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), |
| 4415 | 1.0, -tmin(f128), 0.1, -nan(f128), inf(f128), 0.1, 0.1, fmax(f128), -fmin(f128), fmin(f128), -0.0, fmax(f128), -fmax(f128), -tmin(f128), tmin(f128), | 9907 | 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), |
| 4416 | nan(f128), 0.1, tmin(f128), -1.0, fmin(f128), -nan(f128), fmax(f128), 1.0, nan(f128), -nan(f128), inf(f128), -fmin(f128), fmin(f128), 0.1, 10.0, | 9908 | 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, |
| 4417 | -tmin(f128), -10.0, 0.0, 0.1, -fmin(f128), -0.0, 0.0, -10.0, fmax(f128), nan(f128), nan(f128), -fmin(f128), -fmax(f128), 10.0, 0.0, | 9909 | -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, |
| 4418 | fmin(f128), 10.0, -tmin(f128), -tmin(f128), 0.0, -10.0, 1.0, -fmin(f128), | 9910 | fmin(f128), 1e1, -tmin(f128), -tmin(f128), 0.0, -1e1, 1e0, -fmin(f128), |
| 4419 | }); | 9911 | }); |
| 4420 | try testArgs(@Vector(69, f128), .{ | 9912 | try testArgs(@Vector(69, f128), .{ |
| 4421 | -1.0, nan(f128), 0.1, 0.1, 0.1, -1.0, -10.0, inf(f128), -0.0, inf(f128), tmin(f128), 0.0, -fmax(f128), -tmin(f128), -10.0, -fmax(f128), | 9913 | -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), |
| 4422 | -0.0, 0.0, nan(f128), inf(f128), 1.0, -1.0, 0.1, -0.0, 1.0, fmax(f128), -fmax(f128), 0.0, inf(f128), -inf(f128), -tmin(f128), -inf(f128), | 9914 | -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), |
| 4423 | 10.0, fmin(f128), 10.0, -10.0, 0.1, 1.0, -0.0, nan(f128), tmin(f128), inf(f128), inf(f128), -nan(f128), -nan(f128), 1.0, -tmin(f128), 0.0, | 9915 | 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, |
| 4424 | fmin(f128), fmax(f128), fmin(f128), -10.0, nan(f128), 0.0, -nan(f128), -0.0, -nan(f128), 0.1, -10.0, -tmin(f128), fmax(f128), 1.0, fmin(f128), fmax(f128), | 9916 | 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), |
| 4425 | nan(f128), -inf(f128), 1.0, fmin(f128), -nan(f128), | 9917 | nan(f128), -inf(f128), 1e0, fmin(f128), -nan(f128), |
| 4426 | }, .{ | 9918 | }, .{ |
| 4427 | -inf(f128), fmax(f128), 0.0, nan(f128), -10.0, tmin(f128), nan(f128), 1.0, 10.0, -fmin(f128), fmin(f128), tmin(f128), 0.0, -fmin(f128), -0.0, fmin(f128), | 9919 | -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), |
| 4428 | inf(f128), inf(f128), fmin(f128), fmin(f128), -tmin(f128), -fmax(f128), 10.0, nan(f128), -0.0, 1.0, 10.0, -10.0, -inf(f128), fmin(f128), -fmax(f128), 0.1, | 9920 | 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, |
| 4429 | -1.0, -nan(f128), -10.0, tmin(f128), inf(f128), nan(f128), 0.0, -10.0, tmin(f128), 0.0, -fmax(f128), -tmin(f128), 0.1, 0.1, 10.0, 0.1, | 9921 | -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, |
| 4430 | fmax(f128), 0.1, 0.0, -fmin(f128), -inf(f128), -inf(f128), -nan(f128), 0.1, -fmax(f128), fmax(f128), -fmax(f128), -0.0, -tmin(f128), -1.0, nan(f128), 0.1, | 9922 | 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, |
| 4431 | -1.0, -inf(f128), tmin(f128), inf(f128), inf(f128), | 9923 | -1e0, -inf(f128), tmin(f128), inf(f128), inf(f128), |
| 4432 | }); | 9924 | }); |
| 4433 | } | 9925 | } |
| 4434 | }; | 9926 | }; |
| ... | @@ -4463,6 +9955,65 @@ test clz { | ... | @@ -4463,6 +9955,65 @@ test clz { |
| 4463 | try test_clz.testIntVectors(); | 9955 | try test_clz.testIntVectors(); |
| 4464 | } | 9956 | } |
| 4465 | 9957 | ||
| 9958 | inline fn intCast(comptime Result: type, comptime Type: type, rhs: Type, comptime ct_rhs: Type) Result { | ||
| 9959 | @setRuntimeSafety(false); // TODO | ||
| 9960 | const res_info = switch (@typeInfo(Result)) { | ||
| 9961 | .int => |info| info, | ||
| 9962 | .vector => |info| @typeInfo(info.child).int, | ||
| 9963 | else => @compileError(@typeName(Result)), | ||
| 9964 | }; | ||
| 9965 | const rhs_info = @typeInfo(Scalar(Type)).int; | ||
| 9966 | const min_bits = @min(res_info.bits, rhs_info.bits); | ||
| 9967 | return @intCast(switch (@as(union(enum) { | ||
| 9968 | shift: std.math.Log2Int(Scalar(Type)), | ||
| 9969 | mask: std.math.Log2IntCeil(Scalar(Type)), | ||
| 9970 | }, switch (res_info.signedness) { | ||
| 9971 | .signed => switch (rhs_info.signedness) { | ||
| 9972 | .signed => .{ .shift = rhs_info.bits - min_bits }, | ||
| 9973 | .unsigned => .{ .mask = min_bits - @intFromBool(res_info.bits <= rhs_info.bits) }, | ||
| 9974 | }, | ||
| 9975 | .unsigned => switch (rhs_info.signedness) { | ||
| 9976 | .signed => .{ .mask = min_bits - @intFromBool(res_info.bits >= rhs_info.bits) }, | ||
| 9977 | .unsigned => .{ .mask = min_bits }, | ||
| 9978 | }, | ||
| 9979 | })) { | ||
| 9980 | // TODO: if (bits == 0) rhs else rhs >> bits, | ||
| 9981 | .shift => |bits| if (bits == 0) rhs else switch (@typeInfo(Type)) { | ||
| 9982 | .int => if (ct_rhs < 0) | ||
| 9983 | rhs | std.math.minInt(Type) >> bits | ||
| 9984 | else | ||
| 9985 | rhs & std.math.maxInt(Type) >> bits, | ||
| 9986 | .vector => rhs | @select( | ||
| 9987 | Scalar(Type), | ||
| 9988 | ct_rhs < splat(Type, 0), | ||
| 9989 | splat(Type, std.math.minInt(Scalar(Type)) >> bits), | ||
| 9990 | splat(Type, 0), | ||
| 9991 | ) & ~@select( | ||
| 9992 | Scalar(Type), | ||
| 9993 | ct_rhs >= splat(Type, 0), | ||
| 9994 | splat(Type, std.math.minInt(Scalar(Type)) >> bits), | ||
| 9995 | splat(Type, 0), | ||
| 9996 | ), | ||
| 9997 | else => comptime unreachable, | ||
| 9998 | }, | ||
| 9999 | .mask => |bits| if (bits == rhs_info.bits) rhs else rhs & splat(Type, (1 << bits) - 1), | ||
| 10000 | }); | ||
| 10001 | } | ||
| 10002 | test intCast { | ||
| 10003 | const test_int_cast = cast(intCast, .{}); | ||
| 10004 | try test_int_cast.testInts(); | ||
| 10005 | try test_int_cast.testIntVectors(); | ||
| 10006 | } | ||
| 10007 | |||
| 10008 | inline fn floatCast(comptime Result: type, comptime Type: type, rhs: Type, comptime _: Type) Result { | ||
| 10009 | return @floatCast(rhs); | ||
| 10010 | } | ||
| 10011 | test floatCast { | ||
| 10012 | const test_float_cast = cast(floatCast, .{ .strict = true }); | ||
| 10013 | try test_float_cast.testFloats(); | ||
| 10014 | try test_float_cast.testFloatVectors(); | ||
| 10015 | } | ||
| 10016 | |||
| 4466 | inline fn equal(comptime Type: type, lhs: Type, rhs: Type) @TypeOf(lhs == rhs) { | 10017 | inline fn equal(comptime Type: type, lhs: Type, rhs: Type) @TypeOf(lhs == rhs) { |
| 4467 | return lhs == rhs; | 10018 | return lhs == rhs; |
| 4468 | } | 10019 | } |
test/cases/compile_errors/anytype_param_requires_comptime.zig+1-1| ... | @@ -15,6 +15,6 @@ pub export fn entry() void { | ... | @@ -15,6 +15,6 @@ pub export fn entry() void { |
| 15 | // error | 15 | // error |
| 16 | // | 16 | // |
| 17 | // :7:25: error: unable to resolve comptime value | 17 | // :7:25: error: unable to resolve comptime value |
| 18 | // :7:25: note: initializer of comptime-only struct 'tmp.S.foo__anon_463.C' must be comptime-known | 18 | // :7:25: note: initializer of comptime-only struct 'tmp.S.foo__anon_464.C' must be comptime-known |
| 19 | // :4:16: note: struct requires comptime because of this field | 19 | // :4:16: note: struct requires comptime because of this field |
| 20 | // :4:16: note: types are not available at runtime | 20 | // :4:16: note: types are not available at runtime |
test/cases/compile_errors/bogus_method_call_on_slice.zig+1-1| ... | @@ -16,5 +16,5 @@ pub export fn entry2() void { | ... | @@ -16,5 +16,5 @@ pub export fn entry2() void { |
| 16 | // | 16 | // |
| 17 | // :3:6: error: no field or member function named 'copy' in '[]const u8' | 17 | // :3:6: error: no field or member function named 'copy' in '[]const u8' |
| 18 | // :9:8: error: no field or member function named 'bar' in '@TypeOf(.{})' | 18 | // :9:8: error: no field or member function named 'bar' in '@TypeOf(.{})' |
| 19 | // :12:18: error: no field or member function named 'bar' in 'tmp.entry2__struct_467' | 19 | // :12:18: error: no field or member function named 'bar' in 'tmp.entry2__struct_468' |
| 20 | // :12:6: note: struct declared here | 20 | // :12:6: note: struct declared here |
test/cases/compile_errors/coerce_anon_struct.zig+1-1| ... | @@ -6,6 +6,6 @@ export fn foo() void { | ... | @@ -6,6 +6,6 @@ export fn foo() void { |
| 6 | 6 | ||
| 7 | // error | 7 | // error |
| 8 | // | 8 | // |
| 9 | // :4:16: error: expected type 'tmp.T', found 'tmp.foo__struct_456' | 9 | // :4:16: error: expected type 'tmp.T', found 'tmp.foo__struct_457' |
| 10 | // :3:16: note: struct declared here | 10 | // :3:16: note: struct declared here |
| 11 | // :1:11: note: struct declared here | 11 | // :1:11: note: struct declared here |