diff --git a/lib/compiler_rt.zig b/lib/compiler_rt.zig index 34e07eb8db51..c8da59eb5f0c 100644 --- a/lib/compiler_rt.zig +++ b/lib/compiler_rt.zig @@ -230,6 +230,7 @@ comptime { _ = @import("compiler_rt/trunc.zig"); // BigInt. Alphabetically sorted. + _ = @import("compiler_rt/divmodei4.zig"); _ = @import("compiler_rt/udivmodei4.zig"); _ = @import("compiler_rt/udivmodti4.zig"); diff --git a/lib/compiler_rt/divmodei4.zig b/lib/compiler_rt/divmodei4.zig new file mode 100644 index 000000000000..c26c7418fe2a --- /dev/null +++ b/lib/compiler_rt/divmodei4.zig @@ -0,0 +1,50 @@ +const std = @import("std"); +const builtin = @import("builtin"); +const common = @import("common.zig"); +const udivmod = @import("udivmodei4.zig").divmod; + +comptime { + @export(&__divei4, .{ .name = "__divei4", .linkage = common.linkage, .visibility = common.visibility }); + @export(&__modei4, .{ .name = "__modei4", .linkage = common.linkage, .visibility = common.visibility }); +} + +const endian = builtin.cpu.arch.endian(); + +inline fn limb(x: []u32, i: usize) *u32 { + return if (endian == .little) &x[i] else &x[x.len - 1 - i]; +} + +inline fn neg(x: []u32) void { + var ov: u1 = 1; + for (0..x.len) |limb_index| { + const l = limb(x, limb_index); + l.*, ov = @addWithOverflow(~l.*, ov); + } +} + +/// Mutates the arguments! +fn divmod(q: ?[]u32, r: ?[]u32, u: []u32, v: []u32) !void { + const u_sign: i32 = @bitCast(u[u.len - 1]); + const v_sign: i32 = @bitCast(v[v.len - 1]); + if (u_sign < 0) neg(u); + if (v_sign < 0) neg(v); + try @call(.always_inline, udivmod, .{ q, r, u, v }); + if (q) |x| if (u_sign ^ v_sign < 0) neg(x); + if (r) |x| if (u_sign < 0) neg(x); +} + +pub fn __divei4(r_q: [*]u32, u_p: [*]u32, v_p: [*]u32, bits: usize) callconv(.C) void { + @setRuntimeSafety(builtin.is_test); + const u = u_p[0 .. std.math.divCeil(usize, bits, 32) catch unreachable]; + const v = v_p[0 .. std.math.divCeil(usize, bits, 32) catch unreachable]; + const q = r_q[0 .. std.math.divCeil(usize, bits, 32) catch unreachable]; + @call(.always_inline, divmod, .{ q, null, u, v }) catch unreachable; +} + +pub fn __modei4(r_p: [*]u32, u_p: [*]u32, v_p: [*]u32, bits: usize) callconv(.C) void { + @setRuntimeSafety(builtin.is_test); + const u = u_p[0 .. std.math.divCeil(usize, bits, 32) catch unreachable]; + const v = v_p[0 .. std.math.divCeil(usize, bits, 32) catch unreachable]; + const r = r_p[0 .. std.math.divCeil(usize, bits, 32) catch unreachable]; + @call(.always_inline, divmod, .{ null, r, u, v }) catch unreachable; +} diff --git a/lib/compiler_rt/udivmodei4.zig b/lib/compiler_rt/udivmodei4.zig index cff4212f93b6..0938ac859bcd 100644 --- a/lib/compiler_rt/udivmodei4.zig +++ b/lib/compiler_rt/udivmodei4.zig @@ -27,8 +27,8 @@ inline fn limb_set(x: []u32, i: usize, v: u32) void { } } -// Uses Knuth's Algorithm D, 4.3.1, p. 272. -fn divmod(q: ?[]u32, r: ?[]u32, u: []const u32, v: []const u32) !void { +/// Uses Knuth's Algorithm D, 4.3.1, p. 272. +pub fn divmod(q: ?[]u32, r: ?[]u32, u: []const u32, v: []const u32) !void { if (q) |q_| @memset(q_[0..], 0); if (r) |r_| @memset(r_[0..], 0); diff --git a/src/Sema.zig b/src/Sema.zig index 7ce2fefe1ebd..16765d1a8950 100644 --- a/src/Sema.zig +++ b/src/Sema.zig @@ -8850,7 +8850,7 @@ fn zirEnumFromInt(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError // Use `intCast`, since it'll set up the Sema-emitted safety checks for us! const int_val = try sema.intCast(block, src, int_tag_ty, src, operand, src, true, true); const result = try block.addBitCast(dest_ty, int_val); - if (zcu.backendSupportsFeature(.is_named_enum_value)) { + if (!dest_ty.isNonexhaustiveEnum(zcu) and zcu.backendSupportsFeature(.is_named_enum_value)) { const ok = try block.addUnOp(.is_named_enum_value, result); try sema.addSafetyCheck(block, src, ok, .invalid_enum_value); } diff --git a/src/Type.zig b/src/Type.zig index 690cc3fea036..d058e6a36396 100644 --- a/src/Type.zig +++ b/src/Type.zig @@ -4190,11 +4190,11 @@ pub const @"c_longlong": Type = .{ .ip_index = .c_longlong_type }; pub const @"c_ulonglong": Type = .{ .ip_index = .c_ulonglong_type }; pub const @"c_longdouble": Type = .{ .ip_index = .c_longdouble_type }; -pub const slice_const_u8: Type = .{ .ip_index = .slice_const_u8_type }; pub const manyptr_u8: Type = .{ .ip_index = .manyptr_u8_type }; -pub const single_const_pointer_to_comptime_int: Type = .{ - .ip_index = .single_const_pointer_to_comptime_int_type, -}; +pub const manyptr_const_u8: Type = .{ .ip_index = .manyptr_const_u8_type }; +pub const manyptr_const_u8_sentinel_0: Type = .{ .ip_index = .manyptr_const_u8_sentinel_0_type }; +pub const single_const_pointer_to_comptime_int: Type = .{ .ip_index = .single_const_pointer_to_comptime_int_type }; +pub const slice_const_u8: Type = .{ .ip_index = .slice_const_u8_type }; pub const slice_const_u8_sentinel_0: Type = .{ .ip_index = .slice_const_u8_sentinel_0_type }; pub const vector_16_i8: Type = .{ .ip_index = .vector_16_i8_type }; diff --git a/src/arch/x86_64/CodeGen.zig b/src/arch/x86_64/CodeGen.zig index 798391b63ecf..b46c8396878c 100644 --- a/src/arch/x86_64/CodeGen.zig +++ b/src/arch/x86_64/CodeGen.zig @@ -33,6 +33,10 @@ const FrameIndex = bits.FrameIndex; const InnerError = codegen.CodeGenError || error{OutOfRegisters}; +/// Set this to `false` to uncover Sema OPV bugs. +/// https://github.com/ziglang/zig/issues/22419 +const hack_around_sema_opv_bugs = true; + const err_ret_trace_index: Air.Inst.Index = @enumFromInt(std.math.maxInt(u32)); gpa: Allocator, @@ -2414,7 +2418,7 @@ fn genBodyBlock(self: *CodeGen, body: []const Air.Inst.Index) InnerError!void { } fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { - @setEvalBranchQuota(11_900); + @setEvalBranchQuota(12_400); const pt = cg.pt; const zcu = pt.zcu; const ip = &zcu.intern_pool; @@ -2450,9 +2454,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { try cg.inst_tracking.ensureUnusedCapacity(cg.gpa, 1); switch (air_tags[@intFromEnum(inst)]) { // zig fmt: off - .add_wrap, - .sub_wrap, - => |air_tag| try cg.airBinOp(inst, air_tag), + .add_wrap => try cg.airBinOp(inst, .add_wrap), + .sub_wrap => try cg.airBinOp(inst, .sub_wrap), .shr, .shr_exact => try cg.airShlShrBinOp(inst), .shl, .shl_exact => try cg.airShlShrBinOp(inst), @@ -2470,57 +2473,21 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .mul_with_overflow => try cg.airMulWithOverflow(inst), .shl_with_overflow => try cg.airShlWithOverflow(inst), - .cmp_lt_errors_len => try cg.airCmpLtErrorsLen(inst), - .bitcast => try cg.airBitCast(inst), - .is_non_null => try cg.airIsNonNull(inst), - .is_null => try cg.airIsNull(inst), - .is_non_err => try cg.airIsNonErr(inst), - .is_err => try cg.airIsErr(inst), - .cmpxchg_strong => try cg.airCmpxchg(inst), - .cmpxchg_weak => try cg.airCmpxchg(inst), - .atomic_rmw => try cg.airAtomicRmw(inst), - .atomic_load => try cg.airAtomicLoad(inst), - .memcpy => try cg.airMemcpy(inst), - .memset => try cg.airMemset(inst, false), - .memset_safe => try cg.airMemset(inst, true), + .ctz => try cg.airCtz(inst), .popcount => try cg.airPopCount(inst), .byte_swap => try cg.airByteSwap(inst), .bit_reverse => try cg.airBitReverse(inst), - .tag_name => try cg.airTagName(inst), - .error_name => try cg.airErrorName(inst), .splat => try cg.airSplat(inst), .select => try cg.airSelect(inst), .shuffle => try cg.airShuffle(inst), .reduce => try cg.airReduce(inst), + .reduce_optimized => try cg.airReduce(inst), .aggregate_init => try cg.airAggregateInit(inst), .prefetch => try cg.airPrefetch(inst), - - .atomic_store_unordered => try cg.airAtomicStore(inst, .unordered), - .atomic_store_monotonic => try cg.airAtomicStore(inst, .monotonic), - .atomic_store_release => try cg.airAtomicStore(inst, .release), - .atomic_store_seq_cst => try cg.airAtomicStore(inst, .seq_cst), - - .array_elem_val => try cg.airArrayElemVal(inst), - - .optional_payload => try cg.airOptionalPayload(inst), - .unwrap_errunion_err => try cg.airUnwrapErrUnionErr(inst), - .unwrap_errunion_payload => try cg.airUnwrapErrUnionPayload(inst), - - .wrap_optional => try cg.airWrapOptional(inst), - .wrap_errunion_payload => try cg.airWrapErrUnionPayload(inst), - .wrap_errunion_err => try cg.airWrapErrUnionErr(inst), // zig fmt: on - .add_safe, - .sub_safe, - .mul_safe, - .intcast_safe, - => return cg.fail("TODO implement safety_checked_instructions", .{}), - - .reduce_optimized => try cg.airReduce(inst), - .arg => if (cg.debug_output != .none) { // skip zero-bit arguments as they don't have a corresponding arg instruction var arg_index = cg.arg_index; @@ -2535,24 +2502,96 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { if (arg != .none) break; } else try cg.airDbgVarArgs(); }, - .add, .add_optimized => |air_tag| if (use_old) try cg.airBinOp(inst, .add) else fallback: { + .add, .add_optimized => |air_tag| if (use_old) try cg.airBinOp(inst, .add) else { const bin_op = air_datas[@intFromEnum(inst)].bin_op; - if (cg.floatBits(cg.typeOf(bin_op.lhs).scalarType(zcu)) == null) break :fallback try cg.airBinOp(inst, air_tag); var ops = try cg.tempsFromOperands(inst, .{ bin_op.lhs, bin_op.rhs }); var res: [1]Temp = undefined; cg.select(&res, &.{cg.typeOf(bin_op.lhs)}, &ops, comptime &.{ .{ - .required_features = .{ .f16c, null, null, null }, + .src_constraints = .{ .{ .int = .byte }, .{ .int = .byte }, .any }, + .patterns = &.{ + .{ .src = .{ .mut_mem, .imm8, .none } }, + .{ .src = .{ .imm8, .mut_mem, .none }, .commute = .{ 0, 1 } }, + .{ .src = .{ .to_mut_gpr, .imm8, .none } }, + .{ .src = .{ .imm8, .to_mut_gpr, .none }, .commute = .{ 0, 1 } }, + .{ .src = .{ .mut_mem, .to_gpr, .none } }, + .{ .src = .{ .to_gpr, .mut_mem, .none }, .commute = .{ 0, 1 } }, + .{ .src = .{ .to_mut_gpr, .mem, .none } }, + .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } }, + .{ .src = .{ .to_mut_gpr, .to_gpr, .none } }, + }, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .add, .dst0b, .src1b, ._, ._ }, + } }, + }, .{ + .src_constraints = .{ .{ .int = .word }, .{ .int = .word }, .any }, + .patterns = &.{ + .{ .src = .{ .mut_mem, .imm16, .none } }, + .{ .src = .{ .imm16, .mut_mem, .none }, .commute = .{ 0, 1 } }, + .{ .src = .{ .to_mut_gpr, .imm16, .none } }, + .{ .src = .{ .imm16, .to_mut_gpr, .none }, .commute = .{ 0, 1 } }, + .{ .src = .{ .mut_mem, .to_gpr, .none } }, + .{ .src = .{ .to_gpr, .mut_mem, .none }, .commute = .{ 0, 1 } }, + .{ .src = .{ .to_mut_gpr, .mem, .none } }, + .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } }, + .{ .src = .{ .to_mut_gpr, .to_gpr, .none } }, + }, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .add, .dst0w, .src1w, ._, ._ }, + } }, + }, .{ + .src_constraints = .{ .{ .int = .dword }, .{ .int = .dword }, .any }, + .patterns = &.{ + .{ .src = .{ .mut_mem, .imm32, .none } }, + .{ .src = .{ .imm32, .mut_mem, .none }, .commute = .{ 0, 1 } }, + .{ .src = .{ .to_mut_gpr, .imm32, .none } }, + .{ .src = .{ .imm32, .to_mut_gpr, .none }, .commute = .{ 0, 1 } }, + .{ .src = .{ .mut_mem, .to_gpr, .none } }, + .{ .src = .{ .to_gpr, .mut_mem, .none }, .commute = .{ 0, 1 } }, + .{ .src = .{ .to_mut_gpr, .mem, .none } }, + .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } }, + .{ .src = .{ .to_mut_gpr, .to_gpr, .none } }, + }, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .add, .dst0d, .src1d, ._, ._ }, + } }, + }, .{ + .required_features = .{ .@"64bit", null, null, null }, + .src_constraints = .{ .{ .int = .qword }, .{ .int = .qword }, .any }, + .patterns = &.{ + .{ .src = .{ .mut_mem, .simm32, .none } }, + .{ .src = .{ .simm32, .mut_mem, .none }, .commute = .{ 0, 1 } }, + .{ .src = .{ .to_mut_gpr, .simm32, .none } }, + .{ .src = .{ .simm32, .to_mut_gpr, .none }, .commute = .{ 0, 1 } }, + .{ .src = .{ .mut_mem, .to_gpr, .none } }, + .{ .src = .{ .to_gpr, .mut_mem, .none }, .commute = .{ 0, 1 } }, + .{ .src = .{ .to_mut_gpr, .mem, .none } }, + .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } }, + .{ .src = .{ .to_mut_gpr, .to_gpr, .none } }, + }, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .add, .dst0q, .src1q, ._, ._ }, + } }, + }, .{ + .required_features = .{ .@"64bit", null, null, null }, .src_constraints = .{ - .{ .scalar_float = .{ .of = .word, .is = .word } }, - .{ .scalar_float = .{ .of = .word, .is = .word } }, + .{ .remainder_int = .{ .of = .qword, .is = .qword } }, + .{ .remainder_int = .{ .of = .qword, .is = .qword } }, .any, }, .patterns = &.{ - .{ .src = .{ .to_sse, .to_sse, .none } }, + .{ .src = .{ .to_mem, .to_mem, .none } }, }, .extra_temps = .{ - .{ .type = .f32, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .sse } } }, - .unused, + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, .unused, .unused, .unused, @@ -2561,27 +2600,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ - .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ }, - .{ ._, .v_ps, .cvtph2, .tmp0x, .src1q, ._, ._ }, - .{ ._, .v_ss, .add, .dst0x, .dst0x, .tmp0d, ._ }, - .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ }, + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size_div_8), ._, ._ }, + .{ ._, ._c, .cl, ._, ._, ._, ._ }, + .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"8", .tmp0, .add_size), ._, ._ }, + .{ ._, ._, .adc, .tmp1q, .memsia(.src1q, .@"8", .tmp0, .add_size), ._, ._ }, + .{ ._, ._, .mov, .memsia(.dst0q, .@"8", .tmp0, .add_size), .tmp1q, ._, ._ }, + .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, + .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, } }, }, .{ - .required_features = .{ .sse, null, null, null }, .src_constraints = .{ - .{ .scalar_float = .{ .of = .word, .is = .word } }, - .{ .scalar_float = .{ .of = .word, .is = .word } }, + .{ .remainder_int = .{ .of = .dword, .is = .dword } }, + .{ .remainder_int = .{ .of = .dword, .is = .dword } }, .any, }, .patterns = &.{ - .{ .src = .{ .{ .to_reg = .xmm0 }, .{ .to_reg = .xmm1 }, .none } }, + .{ .src = .{ .to_mem, .to_mem, .none } }, }, - .call_frame = .{ .alignment = .@"16" }, .extra_temps = .{ - .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__addhf3" } } }, - .unused, + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, .unused, .unused, .unused, @@ -2590,78 +2631,70 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, - .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ - .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size_div_4), ._, ._ }, + .{ ._, ._c, .cl, ._, ._, ._, ._ }, + .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"4", .tmp0, .add_size), ._, ._ }, + .{ ._, ._, .adc, .tmp1d, .memsia(.src1d, .@"4", .tmp0, .add_size), ._, ._ }, + .{ ._, ._, .mov, .memsia(.dst0d, .@"4", .tmp0, .add_size), .tmp1d, ._, ._ }, + .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, + .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, } }, }, .{ - .required_features = .{ .f16c, null, null, null }, + .required_features = .{ .avx, null, null, null }, .src_constraints = .{ - .{ .scalar_float = .{ .of = .qword, .is = .word } }, - .{ .scalar_float = .{ .of = .qword, .is = .word } }, + .{ .scalar_int = .{ .of = .xword, .is = .byte } }, + .{ .scalar_int = .{ .of = .xword, .is = .byte } }, .any, }, .patterns = &.{ - .{ .src = .{ .mem, .mem, .none } }, .{ .src = .{ .to_sse, .mem, .none } }, - .{ .src = .{ .mem, .to_sse, .none } }, + .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_sse, .to_sse, .none } }, }, - .extra_temps = .{ - .{ .type = .vector_4_f32, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .sse } } }, - .unused, - .unused, - .unused, - .unused, - .unused, - .unused, - .unused, - .unused, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, + .each = .{ .once = &.{ + .{ ._, .vp_b, .add, .dst0x, .src0x, .src1x, ._ }, + } }, + }, .{ + .required_features = .{ .sse2, null, null, null }, + .src_constraints = .{ + .{ .scalar_int = .{ .of = .xword, .is = .byte } }, + .{ .scalar_int = .{ .of = .xword, .is = .byte } }, + .any, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .patterns = &.{ + .{ .src = .{ .to_mut_sse, .mem, .none } }, + .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } }, + .{ .src = .{ .to_mut_sse, .to_sse, .none } }, + }, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{ - .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ }, - .{ ._, .v_ps, .cvtph2, .tmp0x, .src1q, ._, ._ }, - .{ ._, .v_ps, .add, .dst0x, .dst0x, .tmp0x, ._ }, - .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ }, + .{ ._, .p_b, .add, .dst0x, .src1x, ._, ._ }, } }, }, .{ - .required_features = .{ .f16c, null, null, null }, + .required_features = .{ .avx2, null, null, null }, .src_constraints = .{ - .{ .scalar_float = .{ .of = .xword, .is = .word } }, - .{ .scalar_float = .{ .of = .xword, .is = .word } }, + .{ .scalar_int = .{ .of = .yword, .is = .byte } }, + .{ .scalar_int = .{ .of = .yword, .is = .byte } }, .any, }, .patterns = &.{ - .{ .src = .{ .mem, .mem, .none } }, .{ .src = .{ .to_sse, .mem, .none } }, - .{ .src = .{ .mem, .to_sse, .none } }, + .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_sse, .to_sse, .none } }, }, - .extra_temps = .{ - .{ .type = .vector_8_f32, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .sse } } }, - .unused, - .unused, - .unused, - .unused, - .unused, - .unused, - .unused, - .unused, - }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ - .{ ._, .v_ps, .cvtph2, .dst0y, .src0x, ._, ._ }, - .{ ._, .v_ps, .cvtph2, .tmp0y, .src1x, ._, ._ }, - .{ ._, .v_ps, .add, .dst0y, .dst0y, .tmp0y, ._ }, - .{ ._, .v_, .cvtps2ph, .dst0x, .dst0y, .rm(.{}), ._ }, + .{ ._, .vp_b, .add, .dst0y, .src0y, .src1y, ._ }, } }, }, .{ - .required_features = .{ .f16c, null, null, null }, + .required_features = .{ .avx2, null, null, null }, .src_constraints = .{ - .{ .multiple_scalar_float = .{ .of = .xword, .is = .word } }, - .{ .multiple_scalar_float = .{ .of = .xword, .is = .word } }, + .{ .multiple_scalar_int = .{ .of = .yword, .is = .byte } }, + .{ .multiple_scalar_int = .{ .of = .yword, .is = .byte } }, .any, }, .patterns = &.{ @@ -2669,8 +2702,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .extra_temps = .{ .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, - .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } }, - .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } }, + .{ .type = .vector_32_u8, .kind = .{ .rc = .sse } }, + .unused, .unused, .unused, .unused, @@ -2678,198 +2711,139 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, - .clobbers = .{ .eflags = true }, + .dst_temps = .{ .mem, .unused }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, - .{ .@"0:", .v_ps, .cvtph2, .tmp1y, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, - .{ ._, .v_ps, .cvtph2, .tmp2y, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ }, - .{ ._, .v_ps, .add, .tmp1y, .tmp1y, .tmp2y, ._ }, - .{ ._, .v_, .cvtps2ph, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1y, .rm(.{}), ._ }, - .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, + .{ .@"0:", .v_dqa, .mov, .tmp1y, .memia(.src0y, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, .vp_b, .add, .tmp1y, .tmp1y, .memia(.src1y, .tmp0, .add_unaligned_size), ._ }, + .{ ._, .v_dqa, .mov, .memia(.dst0y, .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, } }, }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ - .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, - .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, + .{ .multiple_scalar_int = .{ .of = .xword, .is = .byte } }, + .{ .multiple_scalar_int = .{ .of = .xword, .is = .byte } }, .any, }, .patterns = &.{ .{ .src = .{ .to_mem, .to_mem, .none } }, }, - .call_frame = .{ .alignment = .@"16" }, .extra_temps = .{ .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, - .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, - .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, - .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__addhf3" } } }, + .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, + .unused, + .unused, .unused, .unused, .unused, .unused, .unused, }, - .dst_temps = .{.mem}, - .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, + .dst_temps = .{ .mem, .unused }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, - .{ .@"0:", .vp_, .xor, .tmp2x, .tmp2x, .tmp2x, ._ }, - .{ ._, .vp_w, .insr, .tmp1x, .tmp2x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0) }, - .{ ._, .vp_w, .insr, .tmp2x, .tmp2x, .memia(.src1w, .tmp0, .add_unaligned_size), .ui(0) }, - .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, - .{ ._, .vp_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1x, .ui(0), ._ }, - .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, + .{ .@"0:", .v_dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, .vp_b, .add, .tmp1x, .tmp1x, .memia(.src1x, .tmp0, .add_unaligned_size), ._ }, + .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, } }, }, .{ - .required_features = .{ .sse4_1, null, null, null }, + .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ - .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, - .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, + .{ .multiple_scalar_int = .{ .of = .xword, .is = .byte } }, + .{ .multiple_scalar_int = .{ .of = .xword, .is = .byte } }, .any, }, .patterns = &.{ .{ .src = .{ .to_mem, .to_mem, .none } }, }, - .call_frame = .{ .alignment = .@"16" }, .extra_temps = .{ .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, - .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, - .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, - .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__addhf3" } } }, + .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, + .unused, + .unused, .unused, .unused, .unused, .unused, .unused, }, - .dst_temps = .{.mem}, - .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, + .dst_temps = .{ .mem, .unused }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, - .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ }, - .{ ._, .p_, .xor, .tmp2x, .tmp2x, ._, ._ }, - .{ ._, .p_w, .insr, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0), ._ }, - .{ ._, .p_w, .insr, .tmp2x, .memia(.src1w, .tmp0, .add_unaligned_size), .ui(0), ._ }, - .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, - .{ ._, .p_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1x, .ui(0), ._ }, - .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, + .{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, .p_b, .add, .tmp1x, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, } }, }, .{ - .required_features = .{ .sse2, null, null, null }, + .required_features = .{ .slow_incdec, null, null, null }, .src_constraints = .{ - .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, - .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, + .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, + .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any, }, .patterns = &.{ .{ .src = .{ .to_mem, .to_mem, .none } }, }, - .call_frame = .{ .alignment = .@"16" }, .extra_temps = .{ .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, - .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, - .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, - .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__addhf3" } } }, - .{ .type = .f16, .kind = .{ .reg = .ax } }, + .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, + .unused, + .unused, + .unused, .unused, .unused, .unused, .unused, }, - .dst_temps = .{.mem}, - .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, + .dst_temps = .{ .mem, .unused }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, - .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ }, - .{ ._, .p_, .xor, .tmp2x, .tmp2x, ._, ._ }, - .{ ._, .p_w, .insr, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0), ._ }, - .{ ._, .p_w, .insr, .tmp2x, .memia(.src1w, .tmp0, .add_unaligned_size), .ui(0), ._ }, - .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, - .{ ._, .p_w, .extr, .tmp4d, .tmp1x, .ui(0), ._ }, - .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp4w, ._, ._ }, - .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, + .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._, .add, .tmp1b, .memia(.src1b, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, } }, }, .{ - .required_features = .{ .sse, null, null, null }, .src_constraints = .{ - .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, - .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, + .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, + .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any, }, .patterns = &.{ .{ .src = .{ .to_mem, .to_mem, .none } }, }, - .call_frame = .{ .alignment = .@"16" }, .extra_temps = .{ .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, - .{ .type = .f16, .kind = .{ .reg = .ax } }, - .{ .type = .f32, .kind = .mem }, - .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, - .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, - .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__addhf3" } } }, + .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, + .unused, + .unused, + .unused, + .unused, .unused, .unused, .unused, }, - .dst_temps = .{.mem}, - .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, + .dst_temps = .{ .mem, .unused }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, - .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, - .{ ._, ._, .mov, .mem(.tmp2d), .tmp1d, ._, ._ }, - .{ ._, ._ss, .mov, .tmp3x, .mem(.tmp2d), ._, ._ }, - .{ ._, ._, .movzx, .tmp1d, .memia(.src1w, .tmp0, .add_unaligned_size), ._, ._ }, - .{ ._, ._, .mov, .mem(.tmp2d), .tmp1d, ._, ._ }, - .{ ._, ._ss, .mov, .tmp4x, .mem(.tmp2d), ._, ._ }, - .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, - .{ ._, ._ss, .mov, .mem(.tmp2d), .tmp3x, ._, ._ }, - .{ ._, ._, .mov, .tmp1d, .mem(.tmp2d), ._, ._ }, - .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, - .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, - .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, - } }, - }, .{ - .required_features = .{ .avx, null, null, null }, - .src_constraints = .{ - .{ .scalar_float = .{ .of = .dword, .is = .dword } }, - .{ .scalar_float = .{ .of = .dword, .is = .dword } }, - .any, - }, - .patterns = &.{ - .{ .src = .{ .to_sse, .mem, .none } }, - .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, - .{ .src = .{ .to_sse, .to_sse, .none } }, - }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, - .each = .{ .once = &.{ - .{ ._, .v_ss, .add, .dst0x, .src0x, .src1d, ._ }, - } }, - }, .{ - .required_features = .{ .sse, null, null, null }, - .src_constraints = .{ - .{ .scalar_float = .{ .of = .dword, .is = .dword } }, - .{ .scalar_float = .{ .of = .dword, .is = .dword } }, - .any, - }, - .patterns = &.{ - .{ .src = .{ .to_mut_sse, .mem, .none } }, - .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } }, - .{ .src = .{ .to_mut_sse, .to_sse, .none } }, - }, - .dst_temps = .{.{ .ref = .src0 }}, - .each = .{ .once = &.{ - .{ ._, ._ss, .add, .dst0x, .src1d, ._, ._ }, + .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._, .add, .tmp1b, .memia(.src1b, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, + .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, + .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, } }, }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ - .{ .scalar_float = .{ .of = .xword, .is = .dword } }, - .{ .scalar_float = .{ .of = .xword, .is = .dword } }, + .{ .scalar_int = .{ .of = .xword, .is = .word } }, + .{ .scalar_int = .{ .of = .xword, .is = .word } }, .any, }, .patterns = &.{ @@ -2877,15 +2851,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_sse, .to_sse, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ - .{ ._, .v_ps, .add, .dst0x, .src0x, .src1x, ._ }, + .{ ._, .vp_w, .add, .dst0x, .src0x, .src1x, ._ }, } }, }, .{ - .required_features = .{ .sse, null, null, null }, + .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ - .{ .scalar_float = .{ .of = .xword, .is = .dword } }, - .{ .scalar_float = .{ .of = .xword, .is = .dword } }, + .{ .scalar_int = .{ .of = .xword, .is = .word } }, + .{ .scalar_int = .{ .of = .xword, .is = .word } }, .any, }, .patterns = &.{ @@ -2893,15 +2867,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_mut_sse, .to_sse, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{ - .{ ._, ._ps, .add, .dst0x, .src1x, ._, ._ }, + .{ ._, .p_w, .add, .dst0x, .src1x, ._, ._ }, } }, }, .{ - .required_features = .{ .avx, null, null, null }, + .required_features = .{ .avx2, null, null, null }, .src_constraints = .{ - .{ .scalar_float = .{ .of = .yword, .is = .dword } }, - .{ .scalar_float = .{ .of = .yword, .is = .dword } }, + .{ .scalar_int = .{ .of = .yword, .is = .word } }, + .{ .scalar_int = .{ .of = .yword, .is = .word } }, .any, }, .patterns = &.{ @@ -2909,15 +2883,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_sse, .to_sse, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ - .{ ._, .v_ps, .add, .dst0y, .src0y, .src1y, ._ }, + .{ ._, .vp_w, .add, .dst0y, .src0y, .src1y, ._ }, } }, }, .{ - .required_features = .{ .avx, null, null, null }, + .required_features = .{ .avx2, null, null, null }, .src_constraints = .{ - .{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } }, - .{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } }, + .{ .multiple_scalar_int = .{ .of = .yword, .is = .word } }, + .{ .multiple_scalar_int = .{ .of = .yword, .is = .word } }, .any, }, .patterns = &.{ @@ -2925,7 +2899,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .extra_temps = .{ .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, - .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } }, + .{ .type = .vector_16_u16, .kind = .{ .rc = .sse } }, .unused, .unused, .unused, @@ -2934,21 +2908,20 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, - .clobbers = .{ .eflags = true }, + .dst_temps = .{ .mem, .unused }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, - .{ .@"0:", .v_ps, .mova, .tmp1y, .memia(.src0y, .tmp0, .add_unaligned_size), ._, ._ }, - .{ ._, .v_ps, .add, .tmp1y, .tmp1y, .memia(.src1y, .tmp0, .add_unaligned_size), ._ }, - .{ ._, .v_ps, .mova, .memia(.dst0y, .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, + .{ .@"0:", .v_dqa, .mov, .tmp1y, .memia(.src0y, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, .vp_w, .add, .tmp1y, .tmp1y, .memia(.src1y, .tmp0, .add_unaligned_size), ._ }, + .{ ._, .v_dqa, .mov, .memia(.dst0y, .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, } }, }, .{ - .required_features = .{ .sse, null, null, null }, + .required_features = .{ .avx, null, null, null }, .src_constraints = .{ - .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, - .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, + .{ .multiple_scalar_int = .{ .of = .xword, .is = .word } }, + .{ .multiple_scalar_int = .{ .of = .xword, .is = .word } }, .any, }, .patterns = &.{ @@ -2956,7 +2929,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .extra_temps = .{ .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, - .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } }, + .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } }, .unused, .unused, .unused, @@ -2965,61 +2938,57 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, - .clobbers = .{ .eflags = true }, + .dst_temps = .{ .mem, .unused }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, - .{ .@"0:", ._ps, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, - .{ ._, ._ps, .add, .tmp1x, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ }, - .{ ._, ._ps, .mova, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, + .{ .@"0:", .v_dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, .vp_w, .add, .tmp1x, .tmp1x, .memia(.src1x, .tmp0, .add_unaligned_size), ._ }, + .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, } }, - }, .{ - .required_features = .{ .avx, null, null, null }, - .src_constraints = .{ - .{ .scalar_float = .{ .of = .qword, .is = .qword } }, - .{ .scalar_float = .{ .of = .qword, .is = .qword } }, - .any, - }, - .patterns = &.{ - .{ .src = .{ .to_sse, .mem, .none } }, - .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, - .{ .src = .{ .to_sse, .to_sse, .none } }, - }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, - .each = .{ .once = &.{ - .{ ._, .v_sd, .add, .dst0x, .src0x, .src1q, ._ }, - } }, }, .{ .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ - .{ .scalar_float = .{ .of = .qword, .is = .qword } }, - .{ .scalar_float = .{ .of = .qword, .is = .qword } }, + .{ .multiple_scalar_int = .{ .of = .xword, .is = .word } }, + .{ .multiple_scalar_int = .{ .of = .xword, .is = .word } }, .any, }, .patterns = &.{ - .{ .src = .{ .to_mut_sse, .mem, .none } }, - .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } }, - .{ .src = .{ .to_mut_sse, .to_sse, .none } }, + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .mem, .unused }, .each = .{ .once = &.{ - .{ ._, ._sd, .add, .dst0x, .src1q, ._, ._ }, + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, .p_w, .add, .tmp1x, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, } }, }, .{ - .required_features = .{ .x87, null, null, null }, .src_constraints = .{ - .{ .scalar_float = .{ .of = .qword, .is = .qword } }, - .{ .scalar_float = .{ .of = .qword, .is = .qword } }, + .{ .multiple_scalar_int = .{ .of = .word, .is = .word } }, + .{ .multiple_scalar_int = .{ .of = .word, .is = .word } }, .any, }, .patterns = &.{ .{ .src = .{ .to_mem, .to_mem, .none } }, }, .extra_temps = .{ - .{ .type = .f64, .kind = .{ .reg = .st6 } }, - .{ .type = .f64, .kind = .{ .reg = .st7 } }, + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, .unused, .unused, .unused, @@ -3028,17 +2997,20 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .each = .{ .once = &.{ - .{ ._, .f_, .ld, .src0q, ._, ._, ._ }, - .{ ._, .f_, .add, .src1q, ._, ._, ._ }, - .{ ._, .f_p, .st, .dst0q, ._, ._, ._ }, + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._, .add, .tmp1w, .memia(.src1w, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, } }, }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ - .{ .scalar_float = .{ .of = .xword, .is = .qword } }, - .{ .scalar_float = .{ .of = .xword, .is = .qword } }, + .{ .scalar_int = .{ .of = .xword, .is = .dword } }, + .{ .scalar_int = .{ .of = .xword, .is = .dword } }, .any, }, .patterns = &.{ @@ -3046,15 +3018,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_sse, .to_sse, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ - .{ ._, .v_pd, .add, .dst0x, .src0x, .src1x, ._ }, + .{ ._, .vp_d, .add, .dst0x, .src0x, .src1x, ._ }, } }, }, .{ .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ - .{ .scalar_float = .{ .of = .xword, .is = .qword } }, - .{ .scalar_float = .{ .of = .xword, .is = .qword } }, + .{ .scalar_int = .{ .of = .xword, .is = .dword } }, + .{ .scalar_int = .{ .of = .xword, .is = .dword } }, .any, }, .patterns = &.{ @@ -3062,15 +3034,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_mut_sse, .to_sse, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{ - .{ ._, ._pd, .add, .dst0x, .src1x, ._, ._ }, + .{ ._, .p_d, .add, .dst0x, .src1x, ._, ._ }, } }, }, .{ - .required_features = .{ .avx, null, null, null }, + .required_features = .{ .avx2, null, null, null }, .src_constraints = .{ - .{ .scalar_float = .{ .of = .yword, .is = .qword } }, - .{ .scalar_float = .{ .of = .yword, .is = .qword } }, + .{ .scalar_int = .{ .of = .yword, .is = .dword } }, + .{ .scalar_int = .{ .of = .yword, .is = .dword } }, .any, }, .patterns = &.{ @@ -3078,15 +3050,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_sse, .to_sse, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ - .{ ._, .v_pd, .add, .dst0y, .src0y, .src1y, ._ }, + .{ ._, .vp_d, .add, .dst0y, .src0y, .src1y, ._ }, } }, }, .{ - .required_features = .{ .avx, null, null, null }, + .required_features = .{ .avx2, null, null, null }, .src_constraints = .{ - .{ .multiple_scalar_float = .{ .of = .yword, .is = .qword } }, - .{ .multiple_scalar_float = .{ .of = .yword, .is = .qword } }, + .{ .multiple_scalar_int = .{ .of = .yword, .is = .dword } }, + .{ .multiple_scalar_int = .{ .of = .yword, .is = .dword } }, .any, }, .patterns = &.{ @@ -3094,7 +3066,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .extra_temps = .{ .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, - .{ .type = .vector_4_f64, .kind = .{ .rc = .sse } }, + .{ .type = .vector_8_u32, .kind = .{ .rc = .sse } }, .unused, .unused, .unused, @@ -3103,21 +3075,20 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, - .clobbers = .{ .eflags = true }, + .dst_temps = .{ .mem, .unused }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, - .{ .@"0:", .v_pd, .mova, .tmp1y, .memia(.src0y, .tmp0, .add_unaligned_size), ._, ._ }, - .{ ._, .v_pd, .add, .tmp1y, .tmp1y, .memia(.src1y, .tmp0, .add_unaligned_size), ._ }, - .{ ._, .v_pd, .mova, .memia(.dst0y, .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, + .{ .@"0:", .v_dqa, .mov, .tmp1y, .memia(.src0y, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, .vp_d, .add, .tmp1y, .tmp1y, .memia(.src1y, .tmp0, .add_unaligned_size), ._ }, + .{ ._, .v_dqa, .mov, .memia(.dst0y, .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, } }, }, .{ - .required_features = .{ .sse2, null, null, null }, + .required_features = .{ .avx, null, null, null }, .src_constraints = .{ - .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }, - .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }, + .{ .multiple_scalar_int = .{ .of = .xword, .is = .dword } }, + .{ .multiple_scalar_int = .{ .of = .xword, .is = .dword } }, .any, }, .patterns = &.{ @@ -3125,7 +3096,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .extra_temps = .{ .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, - .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } }, + .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } }, .unused, .unused, .unused, @@ -3134,21 +3105,20 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, - .clobbers = .{ .eflags = true }, + .dst_temps = .{ .mem, .unused }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, - .{ .@"0:", ._pd, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, - .{ ._, ._pd, .add, .tmp1x, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ }, - .{ ._, ._pd, .mova, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, + .{ .@"0:", .v_dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, .vp_d, .add, .tmp1x, .tmp1x, .memia(.src1x, .tmp0, .add_unaligned_size), ._ }, + .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, } }, }, .{ - .required_features = .{ .x87, null, null, null }, + .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ - .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, - .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, + .{ .multiple_scalar_int = .{ .of = .xword, .is = .dword } }, + .{ .multiple_scalar_int = .{ .of = .xword, .is = .dword } }, .any, }, .patterns = &.{ @@ -3156,8 +3126,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .extra_temps = .{ .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, - .{ .type = .f64, .kind = .{ .reg = .st6 } }, - .{ .type = .f64, .kind = .{ .reg = .st7 } }, + .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } }, + .unused, .unused, .unused, .unused, @@ -3165,28 +3135,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, - .{ .@"0:", .f_, .ld, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._, ._ }, - .{ ._, .f_, .add, .memia(.src1q, .tmp0, .add_unaligned_size), ._, ._, ._ }, - .{ ._, .f_p, .st, .memia(.dst0q, .tmp0, .add_unaligned_size), ._, ._, ._ }, - .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, + .{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, .p_d, .add, .tmp1x, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, } }, }, .{ - .required_features = .{ .x87, null, null, null }, .src_constraints = .{ - .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, - .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, + .{ .multiple_scalar_int = .{ .of = .dword, .is = .dword } }, + .{ .multiple_scalar_int = .{ .of = .dword, .is = .dword } }, .any, }, .patterns = &.{ - .{ .src = .{ .mem, .mem, .none } }, + .{ .src = .{ .to_mem, .to_mem, .none } }, }, .extra_temps = .{ - .{ .type = .f80, .kind = .{ .reg = .st6 } }, - .{ .type = .f80, .kind = .{ .reg = .st7 } }, + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, .unused, .unused, .unused, @@ -3195,47 +3164,68 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .x87 }}, + .dst_temps = .{ .mem, .unused }, .each = .{ .once = &.{ - .{ ._, .f_, .ld, .src0t, ._, ._, ._ }, - .{ ._, .f_, .ld, .src1t, ._, ._, ._ }, - .{ ._, .f_p, .add, ._, ._, ._, ._ }, - .{ ._, .f_p, .st, .dst0t, ._, ._, ._ }, + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._, .add, .tmp1d, .memia(.src1d, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp1d, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, } }, }, .{ - .required_features = .{ .x87, null, null, null }, + .required_features = .{ .avx, null, null, null }, .src_constraints = .{ - .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, - .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, + .{ .scalar_int = .{ .of = .xword, .is = .qword } }, + .{ .scalar_int = .{ .of = .xword, .is = .qword } }, .any, }, .patterns = &.{ - .{ .src = .{ .to_x87, .mem, .none }, .commute = .{ 0, 1 } }, - .{ .src = .{ .mem, .to_x87, .none } }, - .{ .src = .{ .to_x87, .to_x87, .none } }, + .{ .src = .{ .to_sse, .mem, .none } }, + .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, + .{ .src = .{ .to_sse, .to_sse, .none } }, }, - .extra_temps = .{ - .{ .type = .f80, .kind = .{ .reg = .st7 } }, - .unused, - .unused, - .unused, - .unused, - .unused, - .unused, - .unused, - .unused, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, + .each = .{ .once = &.{ + .{ ._, .vp_q, .add, .dst0x, .src0x, .src1x, ._ }, + } }, + }, .{ + .required_features = .{ .sse2, null, null, null }, + .src_constraints = .{ + .{ .scalar_int = .{ .of = .xword, .is = .qword } }, + .{ .scalar_int = .{ .of = .xword, .is = .qword } }, + .any, }, - .dst_temps = .{.{ .rc = .x87 }}, + .patterns = &.{ + .{ .src = .{ .to_mut_sse, .mem, .none } }, + .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } }, + .{ .src = .{ .to_mut_sse, .to_sse, .none } }, + }, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{ - .{ ._, .f_, .ld, .src0t, ._, ._, ._ }, - .{ ._, .f_, .add, .tmp0t, .src1t, ._, ._ }, - .{ ._, .f_p, .st, .dst0t, ._, ._, ._ }, + .{ ._, .p_q, .add, .dst0x, .src1x, ._, ._ }, } }, }, .{ - .required_features = .{ .x87, null, null, null }, + .required_features = .{ .avx2, null, null, null }, .src_constraints = .{ - .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, - .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, + .{ .scalar_int = .{ .of = .yword, .is = .qword } }, + .{ .scalar_int = .{ .of = .yword, .is = .qword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_sse, .mem, .none } }, + .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, + .{ .src = .{ .to_sse, .to_sse, .none } }, + }, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, + .each = .{ .once = &.{ + .{ ._, .vp_q, .add, .dst0y, .src0y, .src1y, ._ }, + } }, + }, .{ + .required_features = .{ .avx2, null, null, null }, + .src_constraints = .{ + .{ .multiple_scalar_int = .{ .of = .yword, .is = .qword } }, + .{ .multiple_scalar_int = .{ .of = .yword, .is = .qword } }, .any, }, .patterns = &.{ @@ -3243,8 +3233,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .extra_temps = .{ .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, - .{ .type = .f80, .kind = .{ .reg = .st6 } }, - .{ .type = .f80, .kind = .{ .reg = .st7 } }, + .{ .type = .vector_4_u64, .kind = .{ .rc = .sse } }, + .unused, .unused, .unused, .unused, @@ -3252,30 +3242,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, - .{ .@"0:", .f_, .ld, .memia(.src0t, .tmp0, .add_unaligned_size), ._, ._, ._ }, - .{ ._, .f_, .ld, .memia(.src1t, .tmp0, .add_unaligned_size), ._, ._, ._ }, - .{ ._, .f_p, .add, ._, ._, ._, ._ }, - .{ ._, .f_p, .st, .memia(.dst0t, .tmp0, .add_unaligned_size), ._, ._, ._ }, - .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, + .{ .@"0:", .v_dqa, .mov, .tmp1y, .memia(.src0y, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, .vp_q, .add, .tmp1y, .tmp1y, .memia(.src1y, .tmp0, .add_unaligned_size), ._ }, + .{ ._, .v_dqa, .mov, .memia(.dst0y, .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, } }, }, .{ - .required_features = .{ .sse, null, null, null }, + .required_features = .{ .avx, null, null, null }, .src_constraints = .{ - .{ .scalar_float = .{ .of = .xword, .is = .xword } }, - .{ .scalar_float = .{ .of = .xword, .is = .xword } }, + .{ .multiple_scalar_int = .{ .of = .xword, .is = .qword } }, + .{ .multiple_scalar_int = .{ .of = .xword, .is = .qword } }, .any, }, .patterns = &.{ - .{ .src = .{ .{ .to_reg = .xmm0 }, .{ .to_reg = .xmm1 }, .none } }, + .{ .src = .{ .to_mem, .to_mem, .none } }, }, - .call_frame = .{ .alignment = .@"16" }, .extra_temps = .{ - .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__addtf3" } } }, - .unused, + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } }, .unused, .unused, .unused, @@ -3284,127 +3272,149 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, - .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, + .dst_temps = .{ .mem, .unused }, .each = .{ .once = &.{ - .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", .v_dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, .vp_q, .add, .tmp1x, .tmp1x, .memia(.src1x, .tmp0, .add_unaligned_size), ._ }, + .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, } }, }, .{ - .required_features = .{ .avx, null, null, null }, + .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ - .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, - .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, + .{ .multiple_scalar_int = .{ .of = .xword, .is = .qword } }, + .{ .multiple_scalar_int = .{ .of = .xword, .is = .qword } }, .any, }, .patterns = &.{ .{ .src = .{ .to_mem, .to_mem, .none } }, }, - .call_frame = .{ .alignment = .@"16" }, .extra_temps = .{ .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, - .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, - .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, - .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__addtf3" } } }, + .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } }, + .unused, + .unused, .unused, .unused, .unused, .unused, .unused, }, - .dst_temps = .{.mem}, - .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, + .dst_temps = .{ .mem, .unused }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, - .{ .@"0:", .v_dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, - .{ ._, .v_dqa, .mov, .tmp2x, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ }, - .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, - .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, + .{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, .p_q, .add, .tmp1x, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, } }, }, .{ - .required_features = .{ .sse2, null, null, null }, + .required_features = .{ .@"64bit", null, null, null }, .src_constraints = .{ - .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, - .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, + .{ .multiple_scalar_int = .{ .of = .qword, .is = .qword } }, + .{ .multiple_scalar_int = .{ .of = .qword, .is = .qword } }, .any, }, .patterns = &.{ .{ .src = .{ .to_mem, .to_mem, .none } }, }, - .call_frame = .{ .alignment = .@"16" }, .extra_temps = .{ .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, - .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, - .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, - .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__addtf3" } } }, + .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, + .unused, + .unused, .unused, .unused, .unused, .unused, .unused, }, - .dst_temps = .{.mem}, - .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, + .dst_temps = .{ .mem, .unused }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, - .{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, - .{ ._, ._dqa, .mov, .tmp2x, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ }, - .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, - .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, - .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, + .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._, .add, .tmp1q, .memia(.src1q, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1q, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, } }, }, .{ - .required_features = .{ .sse, null, null, null }, + .required_features = .{ .@"64bit", null, null, null }, .src_constraints = .{ - .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, - .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, + .{ .scalar_remainder_int = .{ .of = .qword, .is = .qword } }, + .{ .scalar_remainder_int = .{ .of = .qword, .is = .qword } }, .any, }, .patterns = &.{ .{ .src = .{ .to_mem, .to_mem, .none } }, }, - .call_frame = .{ .alignment = .@"16" }, .extra_temps = .{ .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, - .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, - .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, - .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__addtf3" } } }, + .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, + .unused, .unused, .unused, + }, + .dst_temps = .{ .mem, .unused }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, + .{ .@"0:", ._, .lea, .tmp1p, .memia(.src0, .tmp0, .add_size_add_elem_size), ._, ._ }, + .{ ._, ._, .lea, .tmp2p, .memia(.src1, .tmp0, .add_size_add_elem_size), ._, ._ }, + .{ ._, ._, .lea, .tmp3p, .memia(.dst0, .tmp0, .add_size_add_elem_size), ._, ._ }, + .{ ._, ._, .mov, .tmp4p, .sa(.src0, .sub_elem_size_div_8), ._, ._ }, + .{ ._, ._c, .cl, ._, ._, ._, ._ }, + .{ .@"1:", ._, .mov, .tmp5q, .leasi(.tmp1q, .@"8", .tmp4), ._, ._ }, + .{ ._, ._, .adc, .tmp5q, .leasi(.tmp2q, .@"8", .tmp4), ._, ._ }, + .{ ._, ._, .mov, .leasi(.tmp3q, .@"8", .tmp4), .tmp5q, ._, ._ }, + .{ ._, ._c, .in, .tmp4p, ._, ._, ._ }, + .{ ._, ._nz, .j, .@"1b", ._, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .sa(.src0, .add_elem_size), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .src_constraints = .{ + .{ .scalar_remainder_int = .{ .of = .dword, .is = .dword } }, + .{ .scalar_remainder_int = .{ .of = .dword, .is = .dword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, .unused, .unused, .unused, }, - .dst_temps = .{.mem}, - .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, + .dst_temps = .{ .mem, .unused }, .each = .{ .once = &.{ - .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, - .{ .@"0:", ._ps, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, - .{ ._, ._ps, .mova, .tmp2x, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ }, - .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, - .{ ._, ._ps, .mova, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, - .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, + .{ .@"0:", ._, .lea, .tmp1p, .memia(.src0, .tmp0, .add_size_add_elem_size), ._, ._ }, + .{ ._, ._, .lea, .tmp2p, .memia(.src1, .tmp0, .add_size_add_elem_size), ._, ._ }, + .{ ._, ._, .lea, .tmp3p, .memia(.dst0, .tmp0, .add_size_add_elem_size), ._, ._ }, + .{ ._, ._, .mov, .tmp4p, .sa(.src0, .sub_elem_size_div_4), ._, ._ }, + .{ ._, ._c, .cl, ._, ._, ._, ._ }, + .{ .@"1:", ._, .mov, .tmp5d, .leasi(.tmp1d, .@"4", .tmp4), ._, ._ }, + .{ ._, ._, .adc, .tmp5d, .leasi(.tmp2d, .@"4", .tmp4), ._, ._ }, + .{ ._, ._, .mov, .leasi(.tmp3d, .@"4", .tmp4), .tmp5d, ._, ._ }, + .{ ._, ._c, .in, .tmp4p, ._, ._, ._ }, + .{ ._, ._nz, .j, .@"1b", ._, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .sa(.src0, .add_elem_size), ._, ._ }, .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, } }, - } }) catch |err| switch (err) { - error.SelectFailed => return cg.fail("failed to select {s} {} {} {}", .{ - @tagName(air_tag), - cg.typeOf(bin_op.lhs).fmt(pt), - ops[0].tracking(cg), - ops[1].tracking(cg), - }), - else => |e| return e, - }; - try res[0].finish(inst, &.{ bin_op.lhs, bin_op.rhs }, &ops, cg); - }, - .sub, .sub_optimized => |air_tag| if (use_old) try cg.airBinOp(inst, .sub) else fallback: { - const bin_op = air_datas[@intFromEnum(inst)].bin_op; - if (cg.floatBits(cg.typeOf(bin_op.lhs).scalarType(zcu)) == null) break :fallback try cg.airBinOp(inst, air_tag); - var ops = try cg.tempsFromOperands(inst, .{ bin_op.lhs, bin_op.rhs }); - var res: [1]Temp = undefined; - cg.select(&res, &.{cg.typeOf(bin_op.lhs)}, &ops, comptime &.{ .{ + }, .{ .required_features = .{ .f16c, null, null, null }, .src_constraints = .{ .{ .scalar_float = .{ .of = .word, .is = .word } }, @@ -3425,11 +3435,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ }, .{ ._, .v_ps, .cvtph2, .tmp0x, .src1q, ._, ._ }, - .{ ._, .v_ss, .sub, .dst0x, .dst0x, .tmp0d, ._ }, + .{ ._, .v_ss, .add, .dst0x, .dst0x, .tmp0d, ._ }, .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ }, } }, }, .{ @@ -3444,7 +3454,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .call_frame = .{ .alignment = .@"16" }, .extra_temps = .{ - .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__subhf3" } } }, + .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__addhf3" } } }, .unused, .unused, .unused, @@ -3454,7 +3464,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, @@ -3483,11 +3493,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ }, .{ ._, .v_ps, .cvtph2, .tmp0x, .src1q, ._, ._ }, - .{ ._, .v_ps, .sub, .dst0x, .dst0x, .tmp0x, ._ }, + .{ ._, .v_ps, .add, .dst0x, .dst0x, .tmp0x, ._ }, .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ }, } }, }, .{ @@ -3514,11 +3524,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .v_ps, .cvtph2, .dst0y, .src0x, ._, ._ }, .{ ._, .v_ps, .cvtph2, .tmp0y, .src1x, ._, ._ }, - .{ ._, .v_ps, .sub, .dst0y, .dst0y, .tmp0y, ._ }, + .{ ._, .v_ps, .add, .dst0y, .dst0y, .tmp0y, ._ }, .{ ._, .v_, .cvtps2ph, .dst0x, .dst0y, .rm(.{}), ._ }, } }, }, .{ @@ -3542,13 +3552,13 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, .{ .@"0:", .v_ps, .cvtph2, .tmp1y, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, .{ ._, .v_ps, .cvtph2, .tmp2y, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ }, - .{ ._, .v_ps, .sub, .tmp1y, .tmp1y, .tmp2y, ._ }, + .{ ._, .v_ps, .add, .tmp1y, .tmp1y, .tmp2y, ._ }, .{ ._, .v_, .cvtps2ph, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1y, .rm(.{}), ._ }, .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, @@ -3568,14 +3578,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, - .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__subhf3" } } }, + .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__addhf3" } } }, .unused, .unused, .unused, .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -3602,14 +3612,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, - .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__subhf3" } } }, + .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__addhf3" } } }, .unused, .unused, .unused, .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -3637,14 +3647,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, - .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__subhf3" } } }, + .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__addhf3" } } }, .{ .type = .f16, .kind = .{ .reg = .ax } }, .unused, .unused, .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -3675,12 +3685,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .type = .f32, .kind = .mem }, .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, - .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__subhf3" } } }, + .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__addhf3" } } }, .unused, .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -3706,11 +3716,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .patterns = &.{ .{ .src = .{ .to_sse, .mem, .none } }, + .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_sse, .to_sse, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ - .{ ._, .v_ss, .sub, .dst0x, .src0x, .src1d, ._ }, + .{ ._, .v_ss, .add, .dst0x, .src0x, .src1d, ._ }, } }, }, .{ .required_features = .{ .sse, null, null, null }, @@ -3721,11 +3732,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .patterns = &.{ .{ .src = .{ .to_mut_sse, .mem, .none } }, + .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_mut_sse, .to_sse, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{ - .{ ._, ._ss, .sub, .dst0x, .src1d, ._, ._ }, + .{ ._, ._ss, .add, .dst0x, .src1d, ._, ._ }, } }, }, .{ .required_features = .{ .avx, null, null, null }, @@ -3736,11 +3748,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .patterns = &.{ .{ .src = .{ .to_sse, .mem, .none } }, + .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_sse, .to_sse, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ - .{ ._, .v_ps, .sub, .dst0x, .src0x, .src1x, ._ }, + .{ ._, .v_ps, .add, .dst0x, .src0x, .src1x, ._ }, } }, }, .{ .required_features = .{ .sse, null, null, null }, @@ -3751,11 +3764,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .patterns = &.{ .{ .src = .{ .to_mut_sse, .mem, .none } }, + .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_mut_sse, .to_sse, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{ - .{ ._, ._ps, .sub, .dst0x, .src1x, ._, ._ }, + .{ ._, ._ps, .add, .dst0x, .src1x, ._, ._ }, } }, }, .{ .required_features = .{ .avx, null, null, null }, @@ -3766,11 +3780,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .patterns = &.{ .{ .src = .{ .to_sse, .mem, .none } }, + .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_sse, .to_sse, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ - .{ ._, .v_ps, .sub, .dst0y, .src0y, .src1y, ._ }, + .{ ._, .v_ps, .add, .dst0y, .src0y, .src1y, ._ }, } }, }, .{ .required_features = .{ .avx, null, null, null }, @@ -3793,12 +3808,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, .{ .@"0:", .v_ps, .mova, .tmp1y, .memia(.src0y, .tmp0, .add_unaligned_size), ._, ._ }, - .{ ._, .v_ps, .sub, .tmp1y, .tmp1y, .memia(.src1y, .tmp0, .add_unaligned_size), ._ }, + .{ ._, .v_ps, .add, .tmp1y, .tmp1y, .memia(.src1y, .tmp0, .add_unaligned_size), ._ }, .{ ._, .v_ps, .mova, .memia(.dst0y, .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, @@ -3824,12 +3839,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, .{ .@"0:", ._ps, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, - .{ ._, ._ps, .sub, .tmp1x, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._ps, .add, .tmp1x, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ }, .{ ._, ._ps, .mova, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, @@ -3843,11 +3858,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .patterns = &.{ .{ .src = .{ .to_sse, .mem, .none } }, + .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_sse, .to_sse, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ - .{ ._, .v_sd, .sub, .dst0x, .src0x, .src1q, ._ }, + .{ ._, .v_sd, .add, .dst0x, .src0x, .src1q, ._ }, } }, }, .{ .required_features = .{ .sse2, null, null, null }, @@ -3858,11 +3874,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .patterns = &.{ .{ .src = .{ .to_mut_sse, .mem, .none } }, + .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_mut_sse, .to_sse, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{ - .{ ._, ._sd, .sub, .dst0x, .src1q, ._, ._ }, + .{ ._, ._sd, .add, .dst0x, .src1q, ._, ._ }, } }, }, .{ .required_features = .{ .x87, null, null, null }, @@ -3885,10 +3902,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .each = .{ .once = &.{ .{ ._, .f_, .ld, .src0q, ._, ._, ._ }, - .{ ._, .f_, .sub, .src1q, ._, ._, ._ }, + .{ ._, .f_, .add, .src1q, ._, ._, ._ }, .{ ._, .f_p, .st, .dst0q, ._, ._, ._ }, } }, }, .{ @@ -3900,11 +3917,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .patterns = &.{ .{ .src = .{ .to_sse, .mem, .none } }, + .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_sse, .to_sse, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ - .{ ._, .v_pd, .sub, .dst0x, .src0x, .src1x, ._ }, + .{ ._, .v_pd, .add, .dst0x, .src0x, .src1x, ._ }, } }, }, .{ .required_features = .{ .sse2, null, null, null }, @@ -3915,11 +3933,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .patterns = &.{ .{ .src = .{ .to_mut_sse, .mem, .none } }, + .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_mut_sse, .to_sse, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{ - .{ ._, ._pd, .sub, .dst0x, .src1x, ._, ._ }, + .{ ._, ._pd, .add, .dst0x, .src1x, ._, ._ }, } }, }, .{ .required_features = .{ .avx, null, null, null }, @@ -3930,11 +3949,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .patterns = &.{ .{ .src = .{ .to_sse, .mem, .none } }, + .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_sse, .to_sse, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ - .{ ._, .v_pd, .sub, .dst0y, .src0y, .src1y, ._ }, + .{ ._, .v_pd, .add, .dst0y, .src0y, .src1y, ._ }, } }, }, .{ .required_features = .{ .avx, null, null, null }, @@ -3957,12 +3977,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, .{ .@"0:", .v_pd, .mova, .tmp1y, .memia(.src0y, .tmp0, .add_unaligned_size), ._, ._ }, - .{ ._, .v_pd, .sub, .tmp1y, .tmp1y, .memia(.src1y, .tmp0, .add_unaligned_size), ._ }, + .{ ._, .v_pd, .add, .tmp1y, .tmp1y, .memia(.src1y, .tmp0, .add_unaligned_size), ._ }, .{ ._, .v_pd, .mova, .memia(.dst0y, .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, @@ -3988,12 +4008,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, .{ .@"0:", ._pd, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, - .{ ._, ._pd, .sub, .tmp1x, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._pd, .add, .tmp1x, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ }, .{ ._, ._pd, .mova, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, @@ -4019,11 +4039,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, .{ .@"0:", .f_, .ld, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._, ._ }, - .{ ._, .f_, .sub, .memia(.src1q, .tmp0, .add_unaligned_size), ._, ._, ._ }, + .{ ._, .f_, .add, .memia(.src1q, .tmp0, .add_unaligned_size), ._, ._, ._ }, .{ ._, .f_p, .st, .memia(.dst0q, .tmp0, .add_unaligned_size), ._, ._, ._ }, .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, @@ -4049,11 +4069,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .x87 }}, + .dst_temps = .{ .{ .rc = .x87 }, .unused }, .each = .{ .once = &.{ .{ ._, .f_, .ld, .src0t, ._, ._, ._ }, .{ ._, .f_, .ld, .src1t, ._, ._, ._ }, - .{ ._, .f_p, .sub, ._, ._, ._, ._ }, + .{ ._, .f_p, .add, ._, ._, ._, ._ }, .{ ._, .f_p, .st, .dst0t, ._, ._, ._ }, } }, }, .{ @@ -4065,32 +4085,6 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .patterns = &.{ .{ .src = .{ .to_x87, .mem, .none }, .commute = .{ 0, 1 } }, - }, - .extra_temps = .{ - .{ .type = .f80, .kind = .{ .reg = .st7 } }, - .unused, - .unused, - .unused, - .unused, - .unused, - .unused, - .unused, - .unused, - }, - .dst_temps = .{.{ .rc = .x87 }}, - .each = .{ .once = &.{ - .{ ._, .f_, .ld, .src0t, ._, ._, ._ }, - .{ ._, .f_, .subr, .tmp0t, .src1t, ._, ._ }, - .{ ._, .f_p, .st, .dst0t, ._, ._, ._ }, - } }, - }, .{ - .required_features = .{ .x87, null, null, null }, - .src_constraints = .{ - .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, - .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, - .any, - }, - .patterns = &.{ .{ .src = .{ .mem, .to_x87, .none } }, .{ .src = .{ .to_x87, .to_x87, .none } }, }, @@ -4105,10 +4099,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .x87 }}, + .dst_temps = .{ .{ .rc = .x87 }, .unused }, .each = .{ .once = &.{ .{ ._, .f_, .ld, .src0t, ._, ._, ._ }, - .{ ._, .f_, .sub, .tmp0t, .src1t, ._, ._ }, + .{ ._, .f_, .add, .tmp0t, .src1t, ._, ._ }, .{ ._, .f_p, .st, .dst0t, ._, ._, ._ }, } }, }, .{ @@ -4132,12 +4126,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, .{ .@"0:", .f_, .ld, .memia(.src0t, .tmp0, .add_unaligned_size), ._, ._, ._ }, .{ ._, .f_, .ld, .memia(.src1t, .tmp0, .add_unaligned_size), ._, ._, ._ }, - .{ ._, .f_p, .sub, ._, ._, ._, ._ }, + .{ ._, .f_p, .add, ._, ._, ._, ._ }, .{ ._, .f_p, .st, .memia(.dst0t, .tmp0, .add_unaligned_size), ._, ._, ._ }, .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, @@ -4154,7 +4148,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .call_frame = .{ .alignment = .@"16" }, .extra_temps = .{ - .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__subtf3" } } }, + .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__addtf3" } } }, .unused, .unused, .unused, @@ -4164,7 +4158,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, @@ -4184,14 +4178,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, - .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__subtf3" } } }, + .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__addtf3" } } }, .unused, .unused, .unused, .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -4217,14 +4211,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, - .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__subtf3" } } }, + .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__addtf3" } } }, .unused, .unused, .unused, .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -4250,14 +4244,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, - .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__subtf3" } } }, + .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__addtf3" } } }, .unused, .unused, .unused, .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -4279,24 +4273,81 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }; try res[0].finish(inst, &.{ bin_op.lhs, bin_op.rhs }, &ops, cg); }, - .mul, .mul_optimized => |air_tag| if (use_old) try cg.airMulDivBinOp(inst, .mul) else fallback: { + .add_safe => unreachable, + .sub, .sub_optimized => |air_tag| if (use_old) try cg.airBinOp(inst, .sub) else { const bin_op = air_datas[@intFromEnum(inst)].bin_op; - if (cg.floatBits(cg.typeOf(bin_op.lhs).scalarType(zcu)) == null) break :fallback try cg.airMulDivBinOp(inst, .mul); var ops = try cg.tempsFromOperands(inst, .{ bin_op.lhs, bin_op.rhs }); var res: [1]Temp = undefined; cg.select(&res, &.{cg.typeOf(bin_op.lhs)}, &ops, comptime &.{ .{ - .required_features = .{ .f16c, null, null, null }, + .src_constraints = .{ .{ .int = .byte }, .{ .int = .byte }, .any }, + .patterns = &.{ + .{ .src = .{ .mut_mem, .imm8, .none } }, + .{ .src = .{ .to_mut_gpr, .imm8, .none } }, + .{ .src = .{ .mut_mem, .to_gpr, .none } }, + .{ .src = .{ .to_mut_gpr, .mem, .none } }, + .{ .src = .{ .to_mut_gpr, .to_gpr, .none } }, + }, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .sub, .dst0b, .src1b, ._, ._ }, + } }, + }, .{ + .src_constraints = .{ .{ .int = .word }, .{ .int = .word }, .any }, + .patterns = &.{ + .{ .src = .{ .mut_mem, .imm16, .none } }, + .{ .src = .{ .to_mut_gpr, .imm16, .none } }, + .{ .src = .{ .mut_mem, .to_gpr, .none } }, + .{ .src = .{ .to_mut_gpr, .mem, .none } }, + .{ .src = .{ .to_mut_gpr, .to_gpr, .none } }, + }, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .sub, .dst0w, .src1w, ._, ._ }, + } }, + }, .{ + .src_constraints = .{ .{ .int = .dword }, .{ .int = .dword }, .any }, + .patterns = &.{ + .{ .src = .{ .mut_mem, .imm32, .none } }, + .{ .src = .{ .to_mut_gpr, .imm32, .none } }, + .{ .src = .{ .mut_mem, .to_gpr, .none } }, + .{ .src = .{ .to_mut_gpr, .mem, .none } }, + .{ .src = .{ .to_mut_gpr, .to_gpr, .none } }, + }, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .sub, .dst0d, .src1d, ._, ._ }, + } }, + }, .{ + .required_features = .{ .@"64bit", null, null, null }, + .src_constraints = .{ .{ .int = .qword }, .{ .int = .qword }, .any }, + .patterns = &.{ + .{ .src = .{ .mut_mem, .simm32, .none } }, + .{ .src = .{ .to_mut_gpr, .simm32, .none } }, + .{ .src = .{ .mut_mem, .to_gpr, .none } }, + .{ .src = .{ .to_mut_gpr, .mem, .none } }, + .{ .src = .{ .to_mut_gpr, .to_gpr, .none } }, + }, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .sub, .dst0q, .src1q, ._, ._ }, + } }, + }, .{ + .required_features = .{ .@"64bit", null, null, null }, .src_constraints = .{ - .{ .scalar_float = .{ .of = .word, .is = .word } }, - .{ .scalar_float = .{ .of = .word, .is = .word } }, + .{ .remainder_int = .{ .of = .qword, .is = .qword } }, + .{ .remainder_int = .{ .of = .qword, .is = .qword } }, .any, }, .patterns = &.{ - .{ .src = .{ .to_sse, .to_sse, .none } }, + .{ .src = .{ .to_mem, .to_mem, .none } }, }, .extra_temps = .{ - .{ .type = .f32, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .sse } } }, - .unused, + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, .unused, .unused, .unused, @@ -4305,27 +4356,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ - .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ }, - .{ ._, .v_ps, .cvtph2, .tmp0x, .src1q, ._, ._ }, - .{ ._, .v_ss, .mul, .dst0x, .dst0x, .tmp0d, ._ }, - .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ }, + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size_div_8), ._, ._ }, + .{ ._, ._c, .cl, ._, ._, ._, ._ }, + .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"8", .tmp0, .add_size), ._, ._ }, + .{ ._, ._, .sbb, .tmp1q, .memsia(.src1q, .@"8", .tmp0, .add_size), ._, ._ }, + .{ ._, ._, .mov, .memsia(.dst0q, .@"8", .tmp0, .add_size), .tmp1q, ._, ._ }, + .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, + .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, } }, }, .{ - .required_features = .{ .sse, null, null, null }, .src_constraints = .{ - .{ .scalar_float = .{ .of = .word, .is = .word } }, - .{ .scalar_float = .{ .of = .word, .is = .word } }, + .{ .remainder_int = .{ .of = .dword, .is = .dword } }, + .{ .remainder_int = .{ .of = .dword, .is = .dword } }, .any, }, .patterns = &.{ - .{ .src = .{ .{ .to_reg = .xmm0 }, .{ .to_reg = .xmm1 }, .none } }, + .{ .src = .{ .to_mem, .to_mem, .none } }, }, - .call_frame = .{ .alignment = .@"16" }, .extra_temps = .{ - .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__mulhf3" } } }, - .unused, + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, .unused, .unused, .unused, @@ -4334,78 +4387,67 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, - .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ - .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size_div_4), ._, ._ }, + .{ ._, ._c, .cl, ._, ._, ._, ._ }, + .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"4", .tmp0, .add_size), ._, ._ }, + .{ ._, ._, .sbb, .tmp1d, .memsia(.src1d, .@"4", .tmp0, .add_size), ._, ._ }, + .{ ._, ._, .mov, .memsia(.dst0d, .@"4", .tmp0, .add_size), .tmp1d, ._, ._ }, + .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, + .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, } }, }, .{ - .required_features = .{ .f16c, null, null, null }, + .required_features = .{ .avx, null, null, null }, .src_constraints = .{ - .{ .scalar_float = .{ .of = .qword, .is = .word } }, - .{ .scalar_float = .{ .of = .qword, .is = .word } }, + .{ .scalar_int = .{ .of = .xword, .is = .byte } }, + .{ .scalar_int = .{ .of = .xword, .is = .byte } }, .any, }, .patterns = &.{ - .{ .src = .{ .mem, .mem, .none } }, .{ .src = .{ .to_sse, .mem, .none } }, - .{ .src = .{ .mem, .to_sse, .none } }, .{ .src = .{ .to_sse, .to_sse, .none } }, }, - .extra_temps = .{ - .{ .type = .vector_4_f32, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .sse } } }, - .unused, - .unused, - .unused, - .unused, - .unused, - .unused, - .unused, - .unused, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, + .each = .{ .once = &.{ + .{ ._, .vp_b, .sub, .dst0x, .src0x, .src1x, ._ }, + } }, + }, .{ + .required_features = .{ .sse2, null, null, null }, + .src_constraints = .{ + .{ .scalar_int = .{ .of = .xword, .is = .byte } }, + .{ .scalar_int = .{ .of = .xword, .is = .byte } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mut_sse, .mem, .none } }, + .{ .src = .{ .to_mut_sse, .to_sse, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{ - .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ }, - .{ ._, .v_ps, .cvtph2, .tmp0x, .src1q, ._, ._ }, - .{ ._, .v_ps, .mul, .dst0x, .dst0x, .tmp0x, ._ }, - .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ }, + .{ ._, .p_b, .sub, .dst0x, .src1x, ._, ._ }, } }, }, .{ - .required_features = .{ .f16c, null, null, null }, + .required_features = .{ .avx2, null, null, null }, .src_constraints = .{ - .{ .scalar_float = .{ .of = .xword, .is = .word } }, - .{ .scalar_float = .{ .of = .xword, .is = .word } }, + .{ .scalar_int = .{ .of = .yword, .is = .byte } }, + .{ .scalar_int = .{ .of = .yword, .is = .byte } }, .any, }, .patterns = &.{ - .{ .src = .{ .mem, .mem, .none } }, .{ .src = .{ .to_sse, .mem, .none } }, - .{ .src = .{ .mem, .to_sse, .none } }, .{ .src = .{ .to_sse, .to_sse, .none } }, }, - .extra_temps = .{ - .{ .type = .vector_8_f32, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .sse } } }, - .unused, - .unused, - .unused, - .unused, - .unused, - .unused, - .unused, - .unused, - }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ - .{ ._, .v_ps, .cvtph2, .dst0y, .src0x, ._, ._ }, - .{ ._, .v_ps, .cvtph2, .tmp0y, .src1x, ._, ._ }, - .{ ._, .v_ps, .mul, .dst0y, .dst0y, .tmp0y, ._ }, - .{ ._, .v_, .cvtps2ph, .dst0x, .dst0y, .rm(.{}), ._ }, + .{ ._, .vp_b, .sub, .dst0y, .src0y, .src1y, ._ }, } }, }, .{ - .required_features = .{ .f16c, null, null, null }, + .required_features = .{ .avx2, null, null, null }, .src_constraints = .{ - .{ .multiple_scalar_float = .{ .of = .xword, .is = .word } }, - .{ .multiple_scalar_float = .{ .of = .xword, .is = .word } }, + .{ .multiple_scalar_int = .{ .of = .yword, .is = .byte } }, + .{ .multiple_scalar_int = .{ .of = .yword, .is = .byte } }, .any, }, .patterns = &.{ @@ -4413,8 +4455,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .extra_temps = .{ .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, - .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } }, - .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } }, + .{ .type = .vector_32_u8, .kind = .{ .rc = .sse } }, + .unused, .unused, .unused, .unused, @@ -4422,254 +4464,222 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, - .clobbers = .{ .eflags = true }, + .dst_temps = .{ .mem, .unused }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, - .{ .@"0:", .v_ps, .cvtph2, .tmp1y, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, - .{ ._, .v_ps, .cvtph2, .tmp2y, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ }, - .{ ._, .v_ps, .mul, .tmp1y, .tmp1y, .tmp2y, ._ }, - .{ ._, .v_, .cvtps2ph, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1y, .rm(.{}), ._ }, - .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, + .{ .@"0:", .v_dqa, .mov, .tmp1y, .memia(.src0y, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, .vp_b, .sub, .tmp1y, .tmp1y, .memia(.src1y, .tmp0, .add_unaligned_size), ._ }, + .{ ._, .v_dqa, .mov, .memia(.dst0y, .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, } }, }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ - .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, - .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, + .{ .multiple_scalar_int = .{ .of = .xword, .is = .byte } }, + .{ .multiple_scalar_int = .{ .of = .xword, .is = .byte } }, .any, }, .patterns = &.{ .{ .src = .{ .to_mem, .to_mem, .none } }, }, - .call_frame = .{ .alignment = .@"16" }, .extra_temps = .{ .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, - .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, - .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, - .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__mulhf3" } } }, + .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, + .unused, + .unused, .unused, .unused, .unused, .unused, .unused, }, - .dst_temps = .{.mem}, - .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, + .dst_temps = .{ .mem, .unused }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, - .{ .@"0:", .vp_, .xor, .tmp2x, .tmp2x, .tmp2x, ._ }, - .{ ._, .vp_w, .insr, .tmp1x, .tmp2x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0) }, - .{ ._, .vp_w, .insr, .tmp2x, .tmp2x, .memia(.src1w, .tmp0, .add_unaligned_size), .ui(0) }, - .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, - .{ ._, .vp_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1x, .ui(0), ._ }, - .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, + .{ .@"0:", .v_dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, .vp_b, .sub, .tmp1x, .tmp1x, .memia(.src1x, .tmp0, .add_unaligned_size), ._ }, + .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, } }, }, .{ - .required_features = .{ .sse4_1, null, null, null }, + .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ - .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, - .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, + .{ .multiple_scalar_int = .{ .of = .xword, .is = .byte } }, + .{ .multiple_scalar_int = .{ .of = .xword, .is = .byte } }, .any, }, .patterns = &.{ .{ .src = .{ .to_mem, .to_mem, .none } }, }, - .call_frame = .{ .alignment = .@"16" }, .extra_temps = .{ .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, - .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, - .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, - .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__mulhf3" } } }, + .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, + .unused, + .unused, .unused, .unused, .unused, .unused, .unused, }, - .dst_temps = .{.mem}, - .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, + .dst_temps = .{ .mem, .unused }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, - .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ }, - .{ ._, .p_, .xor, .tmp2x, .tmp2x, ._, ._ }, - .{ ._, .p_w, .insr, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0), ._ }, - .{ ._, .p_w, .insr, .tmp2x, .memia(.src1w, .tmp0, .add_unaligned_size), .ui(0), ._ }, - .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, - .{ ._, .p_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1x, .ui(0), ._ }, - .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, + .{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, .p_b, .sub, .tmp1x, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, } }, }, .{ - .required_features = .{ .sse2, null, null, null }, + .required_features = .{ .slow_incdec, null, null, null }, .src_constraints = .{ - .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, - .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, + .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, + .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any, }, .patterns = &.{ .{ .src = .{ .to_mem, .to_mem, .none } }, }, - .call_frame = .{ .alignment = .@"16" }, .extra_temps = .{ .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, - .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, - .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, - .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__mulhf3" } } }, - .{ .type = .f16, .kind = .{ .reg = .ax } }, + .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, + .unused, + .unused, + .unused, .unused, .unused, .unused, .unused, }, - .dst_temps = .{.mem}, - .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, + .dst_temps = .{ .mem, .unused }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, - .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ }, - .{ ._, .p_, .xor, .tmp2x, .tmp2x, ._, ._ }, - .{ ._, .p_w, .insr, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0), ._ }, - .{ ._, .p_w, .insr, .tmp2x, .memia(.src1w, .tmp0, .add_unaligned_size), .ui(0), ._ }, - .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, - .{ ._, .p_w, .extr, .tmp4d, .tmp1x, .ui(0), ._ }, - .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp4w, ._, ._ }, - .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, + .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._, .sub, .tmp1b, .memia(.src1b, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, } }, }, .{ - .required_features = .{ .sse, null, null, null }, .src_constraints = .{ - .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, - .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, + .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, + .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any, }, .patterns = &.{ .{ .src = .{ .to_mem, .to_mem, .none } }, }, - .call_frame = .{ .alignment = .@"16" }, .extra_temps = .{ .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, - .{ .type = .f16, .kind = .{ .reg = .ax } }, - .{ .type = .f32, .kind = .mem }, - .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, - .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, - .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__mulhf3" } } }, + .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, + .unused, + .unused, + .unused, + .unused, .unused, .unused, .unused, }, - .dst_temps = .{.mem}, - .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, + .dst_temps = .{ .mem, .unused }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, - .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, - .{ ._, ._, .mov, .mem(.tmp2d), .tmp1d, ._, ._ }, - .{ ._, ._ss, .mov, .tmp3x, .mem(.tmp2d), ._, ._ }, - .{ ._, ._, .movzx, .tmp1d, .memia(.src1w, .tmp0, .add_unaligned_size), ._, ._ }, - .{ ._, ._, .mov, .mem(.tmp2d), .tmp1d, ._, ._ }, - .{ ._, ._ss, .mov, .tmp4x, .mem(.tmp2d), ._, ._ }, - .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, - .{ ._, ._ss, .mov, .mem(.tmp2d), .tmp3x, ._, ._ }, - .{ ._, ._, .mov, .tmp1d, .mem(.tmp2d), ._, ._ }, - .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, - .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, - .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._, .sub, .tmp1b, .memia(.src1b, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, + .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, + .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, } }, }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ - .{ .scalar_float = .{ .of = .dword, .is = .dword } }, - .{ .scalar_float = .{ .of = .dword, .is = .dword } }, + .{ .scalar_int = .{ .of = .xword, .is = .word } }, + .{ .scalar_int = .{ .of = .xword, .is = .word } }, .any, }, .patterns = &.{ .{ .src = .{ .to_sse, .mem, .none } }, - .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_sse, .to_sse, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ - .{ ._, .v_ss, .mul, .dst0x, .src0x, .src1d, ._ }, + .{ ._, .vp_w, .sub, .dst0x, .src0x, .src1x, ._ }, } }, }, .{ - .required_features = .{ .sse, null, null, null }, + .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ - .{ .scalar_float = .{ .of = .dword, .is = .dword } }, - .{ .scalar_float = .{ .of = .dword, .is = .dword } }, + .{ .scalar_int = .{ .of = .xword, .is = .word } }, + .{ .scalar_int = .{ .of = .xword, .is = .word } }, .any, }, .patterns = &.{ .{ .src = .{ .to_mut_sse, .mem, .none } }, - .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_mut_sse, .to_sse, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{ - .{ ._, ._ss, .mul, .dst0x, .src1d, ._, ._ }, + .{ ._, .p_w, .sub, .dst0x, .src1x, ._, ._ }, } }, }, .{ - .required_features = .{ .avx, null, null, null }, + .required_features = .{ .avx2, null, null, null }, .src_constraints = .{ - .{ .scalar_float = .{ .of = .xword, .is = .dword } }, - .{ .scalar_float = .{ .of = .xword, .is = .dword } }, + .{ .scalar_int = .{ .of = .yword, .is = .word } }, + .{ .scalar_int = .{ .of = .yword, .is = .word } }, .any, }, .patterns = &.{ .{ .src = .{ .to_sse, .mem, .none } }, - .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_sse, .to_sse, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ - .{ ._, .v_ps, .mul, .dst0x, .src0x, .src1x, ._ }, + .{ ._, .vp_w, .sub, .dst0y, .src0y, .src1y, ._ }, } }, }, .{ - .required_features = .{ .sse, null, null, null }, + .required_features = .{ .avx2, null, null, null }, .src_constraints = .{ - .{ .scalar_float = .{ .of = .xword, .is = .dword } }, - .{ .scalar_float = .{ .of = .xword, .is = .dword } }, + .{ .multiple_scalar_int = .{ .of = .yword, .is = .word } }, + .{ .multiple_scalar_int = .{ .of = .yword, .is = .word } }, .any, }, .patterns = &.{ - .{ .src = .{ .to_mut_sse, .mem, .none } }, - .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } }, - .{ .src = .{ .to_mut_sse, .to_sse, .none } }, + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .vector_16_u16, .kind = .{ .rc = .sse } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .mem, .unused }, .each = .{ .once = &.{ - .{ ._, ._ps, .mul, .dst0x, .src1x, ._, ._ }, + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", .v_dqa, .mov, .tmp1y, .memia(.src0y, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, .vp_w, .sub, .tmp1y, .tmp1y, .memia(.src1y, .tmp0, .add_unaligned_size), ._ }, + .{ ._, .v_dqa, .mov, .memia(.dst0y, .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, } }, }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ - .{ .scalar_float = .{ .of = .yword, .is = .dword } }, - .{ .scalar_float = .{ .of = .yword, .is = .dword } }, + .{ .multiple_scalar_int = .{ .of = .xword, .is = .word } }, + .{ .multiple_scalar_int = .{ .of = .xword, .is = .word } }, .any, }, .patterns = &.{ - .{ .src = .{ .to_sse, .mem, .none } }, - .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, - .{ .src = .{ .to_sse, .to_sse, .none } }, - }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, - .each = .{ .once = &.{ - .{ ._, .v_ps, .mul, .dst0y, .src0y, .src1y, ._ }, - } }, - }, .{ - .required_features = .{ .avx, null, null, null }, - .src_constraints = .{ - .{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } }, - .{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } }, - .any, - }, - .patterns = &.{ - .{ .src = .{ .to_mem, .to_mem, .none } }, + .{ .src = .{ .to_mem, .to_mem, .none } }, }, .extra_temps = .{ .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, - .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } }, + .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } }, .unused, .unused, .unused, @@ -4678,21 +4688,20 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, - .clobbers = .{ .eflags = true }, + .dst_temps = .{ .mem, .unused }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, - .{ .@"0:", .v_ps, .mova, .tmp1y, .memia(.src0y, .tmp0, .add_unaligned_size), ._, ._ }, - .{ ._, .v_ps, .mul, .tmp1y, .tmp1y, .memia(.src1y, .tmp0, .add_unaligned_size), ._ }, - .{ ._, .v_ps, .mova, .memia(.dst0y, .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, - .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, + .{ .@"0:", .v_dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, .vp_w, .sub, .tmp1x, .tmp1x, .memia(.src1x, .tmp0, .add_unaligned_size), ._ }, + .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, } }, }, .{ - .required_features = .{ .sse, null, null, null }, + .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ - .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, - .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, + .{ .multiple_scalar_int = .{ .of = .xword, .is = .word } }, + .{ .multiple_scalar_int = .{ .of = .xword, .is = .word } }, .any, }, .patterns = &.{ @@ -4700,7 +4709,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .extra_temps = .{ .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, - .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } }, + .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } }, .unused, .unused, .unused, @@ -4709,61 +4718,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, - .clobbers = .{ .eflags = true }, + .dst_temps = .{ .mem, .unused }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, - .{ .@"0:", ._ps, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, - .{ ._, ._ps, .mul, .tmp1x, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ }, - .{ ._, ._ps, .mova, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, + .{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, .p_w, .sub, .tmp1x, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, } }, }, .{ - .required_features = .{ .avx, null, null, null }, .src_constraints = .{ - .{ .scalar_float = .{ .of = .qword, .is = .qword } }, - .{ .scalar_float = .{ .of = .qword, .is = .qword } }, + .{ .multiple_scalar_int = .{ .of = .word, .is = .word } }, + .{ .multiple_scalar_int = .{ .of = .word, .is = .word } }, .any, }, .patterns = &.{ - .{ .src = .{ .to_sse, .mem, .none } }, - .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, - .{ .src = .{ .to_sse, .to_sse, .none } }, - }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, - .each = .{ .once = &.{ - .{ ._, .v_sd, .mul, .dst0x, .src0x, .src1q, ._ }, - } }, - }, .{ - .required_features = .{ .sse2, null, null, null }, - .src_constraints = .{ - .{ .scalar_float = .{ .of = .qword, .is = .qword } }, - .{ .scalar_float = .{ .of = .qword, .is = .qword } }, - .any, - }, - .patterns = &.{ - .{ .src = .{ .to_mut_sse, .mem, .none } }, - .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } }, - .{ .src = .{ .to_mut_sse, .to_sse, .none } }, - }, - .dst_temps = .{.{ .ref = .src0 }}, - .each = .{ .once = &.{ - .{ ._, ._sd, .mul, .dst0x, .src1q, ._, ._ }, - } }, - }, .{ - .required_features = .{ .x87, null, null, null }, - .src_constraints = .{ - .{ .scalar_float = .{ .of = .qword, .is = .qword } }, - .{ .scalar_float = .{ .of = .qword, .is = .qword } }, - .any, - }, - .patterns = &.{ - .{ .src = .{ .mem, .mem, .none } }, + .{ .src = .{ .to_mem, .to_mem, .none } }, }, .extra_temps = .{ - .{ .type = .f64, .kind = .{ .reg = .st6 } }, - .{ .type = .f64, .kind = .{ .reg = .st7 } }, + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, .unused, .unused, .unused, @@ -4772,65 +4747,65 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .each = .{ .once = &.{ - .{ ._, .f_, .ld, .src0q, ._, ._, ._ }, - .{ ._, .f_, .mul, .src1q, ._, ._, ._ }, - .{ ._, .f_p, .st, .dst0q, ._, ._, ._ }, + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._, .sub, .tmp1w, .memia(.src1w, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, } }, }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ - .{ .scalar_float = .{ .of = .xword, .is = .qword } }, - .{ .scalar_float = .{ .of = .xword, .is = .qword } }, + .{ .scalar_int = .{ .of = .xword, .is = .dword } }, + .{ .scalar_int = .{ .of = .xword, .is = .dword } }, .any, }, .patterns = &.{ .{ .src = .{ .to_sse, .mem, .none } }, - .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_sse, .to_sse, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ - .{ ._, .v_pd, .mul, .dst0x, .src0x, .src1x, ._ }, + .{ ._, .vp_d, .sub, .dst0x, .src0x, .src1x, ._ }, } }, }, .{ .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ - .{ .scalar_float = .{ .of = .xword, .is = .qword } }, - .{ .scalar_float = .{ .of = .xword, .is = .qword } }, + .{ .scalar_int = .{ .of = .xword, .is = .dword } }, + .{ .scalar_int = .{ .of = .xword, .is = .dword } }, .any, }, .patterns = &.{ .{ .src = .{ .to_mut_sse, .mem, .none } }, - .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_mut_sse, .to_sse, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{ - .{ ._, ._pd, .mul, .dst0x, .src1x, ._, ._ }, + .{ ._, .p_d, .sub, .dst0x, .src1x, ._, ._ }, } }, }, .{ - .required_features = .{ .avx, null, null, null }, + .required_features = .{ .avx2, null, null, null }, .src_constraints = .{ - .{ .scalar_float = .{ .of = .yword, .is = .qword } }, - .{ .scalar_float = .{ .of = .yword, .is = .qword } }, + .{ .scalar_int = .{ .of = .yword, .is = .dword } }, + .{ .scalar_int = .{ .of = .yword, .is = .dword } }, .any, }, .patterns = &.{ .{ .src = .{ .to_sse, .mem, .none } }, - .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_sse, .to_sse, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ - .{ ._, .v_pd, .mul, .dst0y, .src0y, .src1y, ._ }, + .{ ._, .vp_d, .sub, .dst0y, .src0y, .src1y, ._ }, } }, }, .{ - .required_features = .{ .avx, null, null, null }, + .required_features = .{ .avx2, null, null, null }, .src_constraints = .{ - .{ .multiple_scalar_float = .{ .of = .yword, .is = .qword } }, - .{ .multiple_scalar_float = .{ .of = .yword, .is = .qword } }, + .{ .multiple_scalar_int = .{ .of = .yword, .is = .dword } }, + .{ .multiple_scalar_int = .{ .of = .yword, .is = .dword } }, .any, }, .patterns = &.{ @@ -4838,7 +4813,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .extra_temps = .{ .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, - .{ .type = .vector_4_f64, .kind = .{ .rc = .sse } }, + .{ .type = .vector_8_u32, .kind = .{ .rc = .sse } }, .unused, .unused, .unused, @@ -4847,21 +4822,20 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, - .clobbers = .{ .eflags = true }, + .dst_temps = .{ .mem, .unused }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, - .{ .@"0:", .v_pd, .mova, .tmp1y, .memia(.src0y, .tmp0, .add_unaligned_size), ._, ._ }, - .{ ._, .v_pd, .mul, .tmp1y, .tmp1y, .memia(.src1y, .tmp0, .add_unaligned_size), ._ }, - .{ ._, .v_pd, .mova, .memia(.dst0y, .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, + .{ .@"0:", .v_dqa, .mov, .tmp1y, .memia(.src0y, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, .vp_d, .sub, .tmp1y, .tmp1y, .memia(.src1y, .tmp0, .add_unaligned_size), ._ }, + .{ ._, .v_dqa, .mov, .memia(.dst0y, .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, } }, }, .{ - .required_features = .{ .sse2, null, null, null }, + .required_features = .{ .avx, null, null, null }, .src_constraints = .{ - .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }, - .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }, + .{ .multiple_scalar_int = .{ .of = .xword, .is = .dword } }, + .{ .multiple_scalar_int = .{ .of = .xword, .is = .dword } }, .any, }, .patterns = &.{ @@ -4869,7 +4843,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .extra_temps = .{ .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, - .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } }, + .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } }, .unused, .unused, .unused, @@ -4878,21 +4852,20 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, - .clobbers = .{ .eflags = true }, + .dst_temps = .{ .mem, .unused }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, - .{ .@"0:", ._pd, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, - .{ ._, ._pd, .mul, .tmp1x, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ }, - .{ ._, ._pd, .mova, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, + .{ .@"0:", .v_dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, .vp_d, .sub, .tmp1x, .tmp1x, .memia(.src1x, .tmp0, .add_unaligned_size), ._ }, + .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, } }, }, .{ - .required_features = .{ .x87, null, null, null }, + .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ - .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, - .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, + .{ .multiple_scalar_int = .{ .of = .xword, .is = .dword } }, + .{ .multiple_scalar_int = .{ .of = .xword, .is = .dword } }, .any, }, .patterns = &.{ @@ -4900,8 +4873,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .extra_temps = .{ .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, - .{ .type = .f64, .kind = .{ .reg = .st6 } }, - .{ .type = .f64, .kind = .{ .reg = .st7 } }, + .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } }, + .unused, .unused, .unused, .unused, @@ -4909,28 +4882,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, - .{ .@"0:", .f_, .ld, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._, ._ }, - .{ ._, .f_, .mul, .memia(.src1q, .tmp0, .add_unaligned_size), ._, ._, ._ }, - .{ ._, .f_p, .st, .memia(.dst0q, .tmp0, .add_unaligned_size), ._, ._, ._ }, - .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, + .{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, .p_d, .sub, .tmp1x, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, } }, }, .{ - .required_features = .{ .x87, null, null, null }, .src_constraints = .{ - .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, - .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, + .{ .multiple_scalar_int = .{ .of = .dword, .is = .dword } }, + .{ .multiple_scalar_int = .{ .of = .dword, .is = .dword } }, .any, }, .patterns = &.{ - .{ .src = .{ .mem, .mem, .none } }, + .{ .src = .{ .to_mem, .to_mem, .none } }, }, .extra_temps = .{ - .{ .type = .f80, .kind = .{ .reg = .st6 } }, - .{ .type = .f80, .kind = .{ .reg = .st7 } }, + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, .unused, .unused, .unused, @@ -4939,28 +4911,73 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .x87 }}, + .dst_temps = .{ .mem, .unused }, .each = .{ .once = &.{ - .{ ._, .f_, .ld, .src0t, ._, ._, ._ }, - .{ ._, .f_, .ld, .src1t, ._, ._, ._ }, - .{ ._, .f_p, .mul, ._, ._, ._, ._ }, - .{ ._, .f_p, .st, .dst0t, ._, ._, ._ }, + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._, .sub, .tmp1d, .memia(.src1d, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp1d, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, } }, }, .{ - .required_features = .{ .x87, null, null, null }, + .required_features = .{ .avx, null, null, null }, .src_constraints = .{ - .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, - .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, + .{ .scalar_int = .{ .of = .xword, .is = .qword } }, + .{ .scalar_int = .{ .of = .xword, .is = .qword } }, .any, }, .patterns = &.{ - .{ .src = .{ .to_x87, .mem, .none }, .commute = .{ 0, 1 } }, - .{ .src = .{ .mem, .to_x87, .none } }, - .{ .src = .{ .to_x87, .to_x87, .none } }, + .{ .src = .{ .to_sse, .mem, .none } }, + .{ .src = .{ .to_sse, .to_sse, .none } }, + }, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, + .each = .{ .once = &.{ + .{ ._, .vp_q, .sub, .dst0x, .src0x, .src1x, ._ }, + } }, + }, .{ + .required_features = .{ .sse2, null, null, null }, + .src_constraints = .{ + .{ .scalar_int = .{ .of = .xword, .is = .qword } }, + .{ .scalar_int = .{ .of = .xword, .is = .qword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mut_sse, .mem, .none } }, + .{ .src = .{ .to_mut_sse, .to_sse, .none } }, + }, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, + .each = .{ .once = &.{ + .{ ._, .p_q, .sub, .dst0x, .src1x, ._, ._ }, + } }, + }, .{ + .required_features = .{ .avx2, null, null, null }, + .src_constraints = .{ + .{ .scalar_int = .{ .of = .yword, .is = .qword } }, + .{ .scalar_int = .{ .of = .yword, .is = .qword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_sse, .mem, .none } }, + .{ .src = .{ .to_sse, .to_sse, .none } }, + }, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, + .each = .{ .once = &.{ + .{ ._, .vp_q, .sub, .dst0y, .src0y, .src1y, ._ }, + } }, + }, .{ + .required_features = .{ .avx2, null, null, null }, + .src_constraints = .{ + .{ .multiple_scalar_int = .{ .of = .yword, .is = .qword } }, + .{ .multiple_scalar_int = .{ .of = .yword, .is = .qword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, }, .extra_temps = .{ - .{ .type = .f80, .kind = .{ .reg = .st7 } }, - .unused, + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .vector_4_u64, .kind = .{ .rc = .sse } }, .unused, .unused, .unused, @@ -4969,17 +4986,20 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .x87 }}, + .dst_temps = .{ .mem, .unused }, .each = .{ .once = &.{ - .{ ._, .f_, .ld, .src0t, ._, ._, ._ }, - .{ ._, .f_, .mul, .tmp0t, .src1t, ._, ._ }, - .{ ._, .f_p, .st, .dst0t, ._, ._, ._ }, + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", .v_dqa, .mov, .tmp1y, .memia(.src0y, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, .vp_q, .sub, .tmp1y, .tmp1y, .memia(.src1y, .tmp0, .add_unaligned_size), ._ }, + .{ ._, .v_dqa, .mov, .memia(.dst0y, .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, } }, }, .{ - .required_features = .{ .x87, null, null, null }, + .required_features = .{ .avx, null, null, null }, .src_constraints = .{ - .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, - .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, + .{ .multiple_scalar_int = .{ .of = .xword, .is = .qword } }, + .{ .multiple_scalar_int = .{ .of = .xword, .is = .qword } }, .any, }, .patterns = &.{ @@ -4987,8 +5007,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .extra_temps = .{ .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, - .{ .type = .f80, .kind = .{ .reg = .st6 } }, - .{ .type = .f80, .kind = .{ .reg = .st7 } }, + .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } }, + .unused, .unused, .unused, .unused, @@ -4996,30 +5016,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, - .{ .@"0:", .f_, .ld, .memia(.src0t, .tmp0, .add_unaligned_size), ._, ._, ._ }, - .{ ._, .f_, .ld, .memia(.src1t, .tmp0, .add_unaligned_size), ._, ._, ._ }, - .{ ._, .f_p, .mul, ._, ._, ._, ._ }, - .{ ._, .f_p, .st, .memia(.dst0t, .tmp0, .add_unaligned_size), ._, ._, ._ }, + .{ .@"0:", .v_dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, .vp_q, .sub, .tmp1x, .tmp1x, .memia(.src1x, .tmp0, .add_unaligned_size), ._ }, + .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, } }, }, .{ - .required_features = .{ .sse, null, null, null }, + .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ - .{ .scalar_float = .{ .of = .xword, .is = .xword } }, - .{ .scalar_float = .{ .of = .xword, .is = .xword } }, + .{ .multiple_scalar_int = .{ .of = .xword, .is = .qword } }, + .{ .multiple_scalar_int = .{ .of = .xword, .is = .qword } }, .any, }, .patterns = &.{ - .{ .src = .{ .{ .to_reg = .xmm0 }, .{ .to_reg = .xmm1 }, .none } }, + .{ .src = .{ .to_mem, .to_mem, .none } }, }, - .call_frame = .{ .alignment = .@"16" }, .extra_temps = .{ - .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__multf3" } } }, - .unused, + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } }, .unused, .unused, .unused, @@ -5028,131 +5046,119 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, - .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, + .dst_temps = .{ .mem, .unused }, .each = .{ .once = &.{ - .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, .p_q, .sub, .tmp1x, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, } }, }, .{ - .required_features = .{ .avx, null, null, null }, + .required_features = .{ .@"64bit", null, null, null }, .src_constraints = .{ - .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, - .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, + .{ .multiple_scalar_int = .{ .of = .qword, .is = .qword } }, + .{ .multiple_scalar_int = .{ .of = .qword, .is = .qword } }, .any, }, .patterns = &.{ .{ .src = .{ .to_mem, .to_mem, .none } }, }, - .call_frame = .{ .alignment = .@"16" }, .extra_temps = .{ .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, - .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, - .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, - .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__multf3" } } }, + .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, + .unused, + .unused, .unused, .unused, .unused, .unused, .unused, }, - .dst_temps = .{.mem}, - .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, + .dst_temps = .{ .mem, .unused }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, - .{ .@"0:", .v_dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, - .{ ._, .v_dqa, .mov, .tmp2x, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ }, - .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, - .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, - .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, + .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._, .sub, .tmp1q, .memia(.src1q, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1q, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, } }, }, .{ - .required_features = .{ .sse2, null, null, null }, + .required_features = .{ .@"64bit", null, null, null }, .src_constraints = .{ - .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, - .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, + .{ .scalar_remainder_int = .{ .of = .qword, .is = .qword } }, + .{ .scalar_remainder_int = .{ .of = .qword, .is = .qword } }, .any, }, .patterns = &.{ .{ .src = .{ .to_mem, .to_mem, .none } }, }, - .call_frame = .{ .alignment = .@"16" }, .extra_temps = .{ .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, - .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, - .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, - .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__multf3" } } }, - .unused, - .unused, + .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, .unused, .unused, .unused, }, - .dst_temps = .{.mem}, - .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, + .dst_temps = .{ .mem, .unused }, .each = .{ .once = &.{ - .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, - .{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, - .{ ._, ._dqa, .mov, .tmp2x, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ }, - .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, - .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, - .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, + .{ .@"0:", ._, .lea, .tmp1p, .memia(.src0, .tmp0, .add_size_add_elem_size), ._, ._ }, + .{ ._, ._, .lea, .tmp2p, .memia(.src1, .tmp0, .add_size_add_elem_size), ._, ._ }, + .{ ._, ._, .lea, .tmp3p, .memia(.dst0, .tmp0, .add_size_add_elem_size), ._, ._ }, + .{ ._, ._, .mov, .tmp4p, .sa(.src0, .sub_elem_size_div_8), ._, ._ }, + .{ ._, ._c, .cl, ._, ._, ._, ._ }, + .{ .@"1:", ._, .mov, .tmp5q, .leasi(.tmp1q, .@"8", .tmp4), ._, ._ }, + .{ ._, ._, .sbb, .tmp5q, .leasi(.tmp2q, .@"8", .tmp4), ._, ._ }, + .{ ._, ._, .mov, .leasi(.tmp3q, .@"8", .tmp4), .tmp5q, ._, ._ }, + .{ ._, ._c, .in, .tmp4p, ._, ._, ._ }, + .{ ._, ._nz, .j, .@"1b", ._, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .sa(.src0, .add_elem_size), ._, ._ }, .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, } }, }, .{ - .required_features = .{ .sse, null, null, null }, .src_constraints = .{ - .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, - .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, + .{ .scalar_remainder_int = .{ .of = .dword, .is = .dword } }, + .{ .scalar_remainder_int = .{ .of = .dword, .is = .dword } }, .any, }, .patterns = &.{ .{ .src = .{ .to_mem, .to_mem, .none } }, }, - .call_frame = .{ .alignment = .@"16" }, .extra_temps = .{ .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, - .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, - .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, - .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__multf3" } } }, - .unused, - .unused, + .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, .unused, .unused, .unused, }, - .dst_temps = .{.mem}, - .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, + .dst_temps = .{ .mem, .unused }, .each = .{ .once = &.{ - .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, - .{ .@"0:", ._ps, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, - .{ ._, ._ps, .mova, .tmp2x, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ }, - .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, - .{ ._, ._ps, .mova, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, - .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, + .{ .@"0:", ._, .lea, .tmp1p, .memia(.src0, .tmp0, .add_size_add_elem_size), ._, ._ }, + .{ ._, ._, .lea, .tmp2p, .memia(.src1, .tmp0, .add_size_add_elem_size), ._, ._ }, + .{ ._, ._, .lea, .tmp3p, .memia(.dst0, .tmp0, .add_size_add_elem_size), ._, ._ }, + .{ ._, ._, .mov, .tmp4p, .sa(.src0, .sub_elem_size_div_4), ._, ._ }, + .{ ._, ._c, .cl, ._, ._, ._, ._ }, + .{ .@"1:", ._, .mov, .tmp5d, .leasi(.tmp1d, .@"4", .tmp4), ._, ._ }, + .{ ._, ._, .sbb, .tmp5d, .leasi(.tmp2d, .@"4", .tmp4), ._, ._ }, + .{ ._, ._, .mov, .leasi(.tmp3d, .@"4", .tmp4), .tmp5d, ._, ._ }, + .{ ._, ._c, .in, .tmp4p, ._, ._, ._ }, + .{ ._, ._nz, .j, .@"1b", ._, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .sa(.src0, .add_elem_size), ._, ._ }, .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, } }, - } }) catch |err| switch (err) { - error.SelectFailed => return cg.fail("failed to select {s} {} {} {}", .{ - @tagName(air_tag), - cg.typeOf(bin_op.lhs).fmt(pt), - ops[0].tracking(cg), - ops[1].tracking(cg), - }), - else => |e| return e, - }; - try res[0].finish(inst, &.{ bin_op.lhs, bin_op.rhs }, &ops, cg); - }, - .div_float, .div_float_optimized, .div_exact, .div_exact_optimized => |air_tag| if (use_old) try cg.airMulDivBinOp(inst, switch (air_tag) { - else => unreachable, - .div_float, .div_float_optimized => .div_float, - .div_exact, .div_exact_optimized => .div_exact, - }) else fallback: { - const bin_op = air_datas[@intFromEnum(inst)].bin_op; - if (cg.floatBits(cg.typeOf(bin_op.lhs).scalarType(zcu)) == null) break :fallback try cg.airMulDivBinOp(inst, .div_exact); - var ops = try cg.tempsFromOperands(inst, .{ bin_op.lhs, bin_op.rhs }); - var res: [1]Temp = undefined; - cg.select(&res, &.{cg.typeOf(bin_op.lhs)}, &ops, comptime &.{ .{ + }, .{ .required_features = .{ .f16c, null, null, null }, .src_constraints = .{ .{ .scalar_float = .{ .of = .word, .is = .word } }, @@ -5173,11 +5179,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ }, .{ ._, .v_ps, .cvtph2, .tmp0x, .src1q, ._, ._ }, - .{ ._, .v_ss, .div, .dst0x, .dst0x, .tmp0d, ._ }, + .{ ._, .v_ss, .sub, .dst0x, .dst0x, .tmp0d, ._ }, .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ }, } }, }, .{ @@ -5192,7 +5198,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .call_frame = .{ .alignment = .@"16" }, .extra_temps = .{ - .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divhf3" } } }, + .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__subhf3" } } }, .unused, .unused, .unused, @@ -5202,7 +5208,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, @@ -5231,11 +5237,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ }, .{ ._, .v_ps, .cvtph2, .tmp0x, .src1q, ._, ._ }, - .{ ._, .v_ps, .div, .dst0x, .dst0x, .tmp0x, ._ }, + .{ ._, .v_ps, .sub, .dst0x, .dst0x, .tmp0x, ._ }, .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ }, } }, }, .{ @@ -5262,11 +5268,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .v_ps, .cvtph2, .dst0y, .src0x, ._, ._ }, .{ ._, .v_ps, .cvtph2, .tmp0y, .src1x, ._, ._ }, - .{ ._, .v_ps, .div, .dst0y, .dst0y, .tmp0y, ._ }, + .{ ._, .v_ps, .sub, .dst0y, .dst0y, .tmp0y, ._ }, .{ ._, .v_, .cvtps2ph, .dst0x, .dst0y, .rm(.{}), ._ }, } }, }, .{ @@ -5290,13 +5296,13 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, .{ .@"0:", .v_ps, .cvtph2, .tmp1y, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, .{ ._, .v_ps, .cvtph2, .tmp2y, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ }, - .{ ._, .v_ps, .div, .tmp1y, .tmp1y, .tmp2y, ._ }, + .{ ._, .v_ps, .sub, .tmp1y, .tmp1y, .tmp2y, ._ }, .{ ._, .v_, .cvtps2ph, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1y, .rm(.{}), ._ }, .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, @@ -5316,14 +5322,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, - .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divhf3" } } }, + .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__subhf3" } } }, .unused, .unused, .unused, .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -5350,14 +5356,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, - .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divhf3" } } }, + .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__subhf3" } } }, .unused, .unused, .unused, .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -5385,14 +5391,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, - .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divhf3" } } }, + .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__subhf3" } } }, .{ .type = .f16, .kind = .{ .reg = .ax } }, .unused, .unused, .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -5423,12 +5429,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .type = .f32, .kind = .mem }, .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, - .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divhf3" } } }, + .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__subhf3" } } }, .unused, .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -5456,9 +5462,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .to_sse, .mem, .none } }, .{ .src = .{ .to_sse, .to_sse, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ - .{ ._, .v_ss, .div, .dst0x, .src0x, .src1d, ._ }, + .{ ._, .v_ss, .sub, .dst0x, .src0x, .src1d, ._ }, } }, }, .{ .required_features = .{ .sse, null, null, null }, @@ -5471,9 +5477,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .to_mut_sse, .mem, .none } }, .{ .src = .{ .to_mut_sse, .to_sse, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{ - .{ ._, ._ss, .div, .dst0x, .src1d, ._, ._ }, + .{ ._, ._ss, .sub, .dst0x, .src1d, ._, ._ }, } }, }, .{ .required_features = .{ .avx, null, null, null }, @@ -5486,9 +5492,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .to_sse, .mem, .none } }, .{ .src = .{ .to_sse, .to_sse, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ - .{ ._, .v_ps, .div, .dst0x, .src0x, .src1x, ._ }, + .{ ._, .v_ps, .sub, .dst0x, .src0x, .src1x, ._ }, } }, }, .{ .required_features = .{ .sse, null, null, null }, @@ -5501,9 +5507,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .to_mut_sse, .mem, .none } }, .{ .src = .{ .to_mut_sse, .to_sse, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{ - .{ ._, ._ps, .div, .dst0x, .src1x, ._, ._ }, + .{ ._, ._ps, .sub, .dst0x, .src1x, ._, ._ }, } }, }, .{ .required_features = .{ .avx, null, null, null }, @@ -5516,9 +5522,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .to_sse, .mem, .none } }, .{ .src = .{ .to_sse, .to_sse, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ - .{ ._, .v_ps, .div, .dst0y, .src0y, .src1y, ._ }, + .{ ._, .v_ps, .sub, .dst0y, .src0y, .src1y, ._ }, } }, }, .{ .required_features = .{ .avx, null, null, null }, @@ -5541,12 +5547,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, .{ .@"0:", .v_ps, .mova, .tmp1y, .memia(.src0y, .tmp0, .add_unaligned_size), ._, ._ }, - .{ ._, .v_ps, .div, .tmp1y, .tmp1y, .memia(.src1y, .tmp0, .add_unaligned_size), ._ }, + .{ ._, .v_ps, .sub, .tmp1y, .tmp1y, .memia(.src1y, .tmp0, .add_unaligned_size), ._ }, .{ ._, .v_ps, .mova, .memia(.dst0y, .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, @@ -5572,12 +5578,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, .{ .@"0:", ._ps, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, - .{ ._, ._ps, .div, .tmp1x, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._ps, .sub, .tmp1x, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ }, .{ ._, ._ps, .mova, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, @@ -5593,9 +5599,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .to_sse, .mem, .none } }, .{ .src = .{ .to_sse, .to_sse, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ - .{ ._, .v_sd, .div, .dst0x, .src0x, .src1q, ._ }, + .{ ._, .v_sd, .sub, .dst0x, .src0x, .src1q, ._ }, } }, }, .{ .required_features = .{ .sse2, null, null, null }, @@ -5608,9 +5614,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .to_mut_sse, .mem, .none } }, .{ .src = .{ .to_mut_sse, .to_sse, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{ - .{ ._, ._sd, .div, .dst0x, .src1q, ._, ._ }, + .{ ._, ._sd, .sub, .dst0x, .src1q, ._, ._ }, } }, }, .{ .required_features = .{ .x87, null, null, null }, @@ -5620,7 +5626,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .any, }, .patterns = &.{ - .{ .src = .{ .mem, .mem, .none } }, + .{ .src = .{ .to_mem, .to_mem, .none } }, }, .extra_temps = .{ .{ .type = .f64, .kind = .{ .reg = .st6 } }, @@ -5633,10 +5639,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .each = .{ .once = &.{ .{ ._, .f_, .ld, .src0q, ._, ._, ._ }, - .{ ._, .f_, .div, .src1q, ._, ._, ._ }, + .{ ._, .f_, .sub, .src1q, ._, ._, ._ }, .{ ._, .f_p, .st, .dst0q, ._, ._, ._ }, } }, }, .{ @@ -5650,9 +5656,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .to_sse, .mem, .none } }, .{ .src = .{ .to_sse, .to_sse, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ - .{ ._, .v_pd, .div, .dst0x, .src0x, .src1x, ._ }, + .{ ._, .v_pd, .sub, .dst0x, .src0x, .src1x, ._ }, } }, }, .{ .required_features = .{ .sse2, null, null, null }, @@ -5665,9 +5671,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .to_mut_sse, .mem, .none } }, .{ .src = .{ .to_mut_sse, .to_sse, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{ - .{ ._, ._pd, .div, .dst0x, .src1x, ._, ._ }, + .{ ._, ._pd, .sub, .dst0x, .src1x, ._, ._ }, } }, }, .{ .required_features = .{ .avx, null, null, null }, @@ -5680,9 +5686,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .to_sse, .mem, .none } }, .{ .src = .{ .to_sse, .to_sse, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ - .{ ._, .v_pd, .div, .dst0y, .src0y, .src1y, ._ }, + .{ ._, .v_pd, .sub, .dst0y, .src0y, .src1y, ._ }, } }, }, .{ .required_features = .{ .avx, null, null, null }, @@ -5705,12 +5711,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, .{ .@"0:", .v_pd, .mova, .tmp1y, .memia(.src0y, .tmp0, .add_unaligned_size), ._, ._ }, - .{ ._, .v_pd, .div, .tmp1y, .tmp1y, .memia(.src1y, .tmp0, .add_unaligned_size), ._ }, + .{ ._, .v_pd, .sub, .tmp1y, .tmp1y, .memia(.src1y, .tmp0, .add_unaligned_size), ._ }, .{ ._, .v_pd, .mova, .memia(.dst0y, .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, @@ -5736,12 +5742,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, .{ .@"0:", ._pd, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, - .{ ._, ._pd, .div, .tmp1x, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._pd, .sub, .tmp1x, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ }, .{ ._, ._pd, .mova, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, @@ -5767,11 +5773,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, .{ .@"0:", .f_, .ld, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._, ._ }, - .{ ._, .f_, .div, .memia(.src1q, .tmp0, .add_unaligned_size), ._, ._, ._ }, + .{ ._, .f_, .sub, .memia(.src1q, .tmp0, .add_unaligned_size), ._, ._, ._ }, .{ ._, .f_p, .st, .memia(.dst0q, .tmp0, .add_unaligned_size), ._, ._, ._ }, .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, @@ -5797,11 +5803,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .x87 }}, + .dst_temps = .{ .{ .rc = .x87 }, .unused }, .each = .{ .once = &.{ .{ ._, .f_, .ld, .src0t, ._, ._, ._ }, .{ ._, .f_, .ld, .src1t, ._, ._, ._ }, - .{ ._, .f_p, .div, ._, ._, ._, ._ }, + .{ ._, .f_p, .sub, ._, ._, ._, ._ }, .{ ._, .f_p, .st, .dst0t, ._, ._, ._ }, } }, }, .{ @@ -5825,10 +5831,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .x87 }}, + .dst_temps = .{ .{ .rc = .x87 }, .unused }, .each = .{ .once = &.{ .{ ._, .f_, .ld, .src0t, ._, ._, ._ }, - .{ ._, .f_, .divr, .tmp0t, .src1t, ._, ._ }, + .{ ._, .f_, .subr, .tmp0t, .src1t, ._, ._ }, .{ ._, .f_p, .st, .dst0t, ._, ._, ._ }, } }, }, .{ @@ -5853,10 +5859,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .x87 }}, + .dst_temps = .{ .{ .rc = .x87 }, .unused }, .each = .{ .once = &.{ .{ ._, .f_, .ld, .src0t, ._, ._, ._ }, - .{ ._, .f_, .div, .tmp0t, .src1t, ._, ._ }, + .{ ._, .f_, .sub, .tmp0t, .src1t, ._, ._ }, .{ ._, .f_p, .st, .dst0t, ._, ._, ._ }, } }, }, .{ @@ -5880,12 +5886,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, .{ .@"0:", .f_, .ld, .memia(.src0t, .tmp0, .add_unaligned_size), ._, ._, ._ }, .{ ._, .f_, .ld, .memia(.src1t, .tmp0, .add_unaligned_size), ._, ._, ._ }, - .{ ._, .f_p, .div, ._, ._, ._, ._ }, + .{ ._, .f_p, .sub, ._, ._, ._, ._ }, .{ ._, .f_p, .st, .memia(.dst0t, .tmp0, .add_unaligned_size), ._, ._, ._ }, .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, @@ -5902,7 +5908,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .call_frame = .{ .alignment = .@"16" }, .extra_temps = .{ - .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divtf3" } } }, + .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__subtf3" } } }, .unused, .unused, .unused, @@ -5912,7 +5918,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, @@ -5932,14 +5938,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, - .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divtf3" } } }, + .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__subtf3" } } }, .unused, .unused, .unused, .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -5965,14 +5971,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, - .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divtf3" } } }, + .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__subtf3" } } }, .unused, .unused, .unused, .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -5998,14 +6004,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, - .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divtf3" } } }, + .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__subtf3" } } }, .unused, .unused, .unused, .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -6027,1071 +6033,3118 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }; try res[0].finish(inst, &.{ bin_op.lhs, bin_op.rhs }, &ops, cg); }, - .div_trunc, .div_floor => |air_tag| if (use_old) try cg.airMulDivBinOp(inst, air_tag) else fallback: { + .sub_safe => unreachable, + .mul, .mul_optimized => |air_tag| if (use_old) try cg.airMulDivBinOp(inst, .mul) else fallback: { const bin_op = air_datas[@intFromEnum(inst)].bin_op; - if (cg.floatBits(cg.typeOf(bin_op.lhs).scalarType(zcu)) == null) break :fallback try cg.airMulDivBinOp(inst, air_tag); + const ty = cg.typeOf(bin_op.lhs); + if (ty.isVector(zcu) and cg.floatBits(ty.childType(zcu)) == null) break :fallback try cg.airMulDivBinOp(inst, .mul); var ops = try cg.tempsFromOperands(inst, .{ bin_op.lhs, bin_op.rhs }); var res: [1]Temp = undefined; - cg.select(&res, &.{cg.typeOf(bin_op.lhs)}, &ops, switch (@as(bits.RoundMode.Direction, switch (air_tag) { - else => unreachable, - .div_trunc => .zero, - .div_floor => .down, - })) { - else => unreachable, - inline .zero, .down => |direction| comptime &.{ .{ - .required_features = .{ .f16c, null, null, null }, - .src_constraints = .{ - .{ .scalar_float = .{ .of = .word, .is = .word } }, - .{ .scalar_float = .{ .of = .word, .is = .word } }, - .any, - }, - .patterns = &.{ - .{ .src = .{ .to_sse, .to_sse, .none } }, - }, - .extra_temps = .{ - .{ .type = .f32, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .sse } } }, - .unused, - .unused, - .unused, - .unused, - .unused, - .unused, - .unused, - .unused, - }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, - .each = .{ .once = &.{ - .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ }, - .{ ._, .v_ps, .cvtph2, .tmp0x, .src1q, ._, ._ }, - .{ ._, .v_ss, .div, .dst0x, .dst0x, .tmp0d, ._ }, - .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ }, - .{ ._, .v_ps, .cvtph2, .dst0x, .dst0q, ._, ._ }, - .{ ._, .v_ss, .round, .dst0x, .dst0x, .dst0d, .rm(.{ .direction = direction, .precision = .inexact }) }, - .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ }, - } }, - }, .{ - .required_features = .{ .sse, null, null, null }, - .src_constraints = .{ - .{ .scalar_float = .{ .of = .word, .is = .word } }, - .{ .scalar_float = .{ .of = .word, .is = .word } }, - .any, - }, - .patterns = &.{ - .{ .src = .{ .{ .to_reg = .xmm0 }, .{ .to_reg = .xmm1 }, .none } }, - }, - .call_frame = .{ .alignment = .@"16" }, - .extra_temps = .{ - .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divhf3" } } }, - .{ .type = .usize, .kind = .{ .symbol = &.{ .name = switch (direction) { - else => unreachable, - .zero => "__trunch", - .down => "__floorh", - } } } }, - .unused, - .unused, - .unused, - .unused, - .unused, - .unused, - .unused, - }, - .dst_temps = .{.{ .ref = .src0 }}, - .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, - .each = .{ .once = &.{ - .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, - .{ ._, ._, .call, .tmp1d, ._, ._, ._ }, - } }, - }, .{ - .required_features = .{ .f16c, null, null, null }, - .src_constraints = .{ - .{ .scalar_float = .{ .of = .qword, .is = .word } }, - .{ .scalar_float = .{ .of = .qword, .is = .word } }, - .any, - }, - .patterns = &.{ - .{ .src = .{ .mem, .mem, .none } }, - .{ .src = .{ .to_sse, .mem, .none } }, - .{ .src = .{ .mem, .to_sse, .none } }, - .{ .src = .{ .to_sse, .to_sse, .none } }, - }, - .extra_temps = .{ - .{ .type = .vector_4_f32, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .sse } } }, - .unused, - .unused, - .unused, - .unused, - .unused, - .unused, - .unused, - .unused, - }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, - .each = .{ .once = &.{ - .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ }, - .{ ._, .v_ps, .cvtph2, .tmp0x, .src1q, ._, ._ }, - .{ ._, .v_ps, .div, .dst0x, .dst0x, .tmp0x, ._ }, - .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ }, - .{ ._, .v_ps, .cvtph2, .dst0x, .dst0q, ._, ._ }, - .{ ._, .v_ps, .round, .dst0x, .dst0x, .rm(.{ .direction = direction, .precision = .inexact }), ._ }, - .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ }, - } }, - }, .{ - .required_features = .{ .f16c, null, null, null }, - .src_constraints = .{ - .{ .scalar_float = .{ .of = .xword, .is = .word } }, - .{ .scalar_float = .{ .of = .xword, .is = .word } }, - .any, - }, - .patterns = &.{ - .{ .src = .{ .mem, .mem, .none } }, - .{ .src = .{ .to_sse, .mem, .none } }, - .{ .src = .{ .mem, .to_sse, .none } }, - .{ .src = .{ .to_sse, .to_sse, .none } }, - }, - .extra_temps = .{ - .{ .type = .vector_8_f32, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .sse } } }, - .unused, - .unused, - .unused, - .unused, - .unused, - .unused, - .unused, - .unused, - }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, - .each = .{ .once = &.{ - .{ ._, .v_ps, .cvtph2, .dst0y, .src0x, ._, ._ }, - .{ ._, .v_ps, .cvtph2, .tmp0y, .src1x, ._, ._ }, - .{ ._, .v_ps, .div, .dst0y, .dst0y, .tmp0y, ._ }, - .{ ._, .v_, .cvtps2ph, .dst0x, .dst0y, .rm(.{}), ._ }, - .{ ._, .v_ps, .cvtph2, .dst0y, .dst0x, ._, ._ }, - .{ ._, .v_ps, .round, .dst0y, .dst0y, .rm(.{ .direction = direction, .precision = .inexact }), ._ }, - .{ ._, .v_, .cvtps2ph, .dst0x, .dst0y, .rm(.{}), ._ }, - } }, - }, .{ - .required_features = .{ .f16c, null, null, null }, - .src_constraints = .{ - .{ .multiple_scalar_float = .{ .of = .xword, .is = .word } }, - .{ .multiple_scalar_float = .{ .of = .xword, .is = .word } }, - .any, - }, - .patterns = &.{ - .{ .src = .{ .to_mem, .to_mem, .none } }, - }, - .extra_temps = .{ - .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, - .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } }, - .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } }, - .unused, - .unused, - .unused, - .unused, - .unused, - .unused, - }, - .dst_temps = .{.mem}, - .clobbers = .{ .eflags = true }, - .each = .{ .once = &.{ - .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, - .{ .@"0:", .v_ps, .cvtph2, .tmp1y, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, - .{ ._, .v_ps, .cvtph2, .tmp2y, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ }, - .{ ._, .v_ps, .div, .tmp1y, .tmp1y, .tmp2y, ._ }, - .{ ._, .v_, .cvtps2ph, .tmp1x, .tmp1y, .rm(.{}), ._ }, - .{ ._, .v_ps, .cvtph2, .tmp1y, .tmp1x, ._, ._ }, - .{ ._, .v_ps, .round, .tmp1y, .tmp1y, .rm(.{ .direction = direction, .precision = .inexact }), ._ }, - .{ ._, .v_, .cvtps2ph, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1y, .rm(.{}), ._ }, - .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, - .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, - } }, - }, .{ - .required_features = .{ .avx, null, null, null }, - .src_constraints = .{ - .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, - .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, - .any, - }, - .patterns = &.{ - .{ .src = .{ .to_mem, .to_mem, .none } }, - }, - .call_frame = .{ .alignment = .@"16" }, - .extra_temps = .{ - .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, - .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, - .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, - .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divhf3" } } }, - .{ .type = .usize, .kind = .{ .symbol = &.{ .name = switch (direction) { - else => unreachable, - .zero => "__trunch", - .down => "__floorh", - } } } }, - .unused, - .unused, - .unused, - .unused, - }, - .dst_temps = .{.mem}, - .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, - .each = .{ .once = &.{ - .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, - .{ .@"0:", .vp_, .xor, .tmp2x, .tmp2x, .tmp2x, ._ }, - .{ ._, .vp_w, .insr, .tmp1x, .tmp2x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0) }, - .{ ._, .vp_w, .insr, .tmp2x, .tmp2x, .memia(.src1w, .tmp0, .add_unaligned_size), .ui(0) }, - .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, - .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, - .{ ._, .vp_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1x, .ui(0), ._ }, - .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, - .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, - } }, - }, .{ - .required_features = .{ .sse4_1, null, null, null }, - .src_constraints = .{ - .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, - .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, - .any, - }, - .patterns = &.{ - .{ .src = .{ .to_mem, .to_mem, .none } }, - }, - .call_frame = .{ .alignment = .@"16" }, - .extra_temps = .{ - .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, - .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, - .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, - .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divhf3" } } }, - .{ .type = .usize, .kind = .{ .symbol = &.{ .name = switch (direction) { - else => unreachable, - .zero => "__trunch", - .down => "__floorh", - } } } }, - .unused, - .unused, - .unused, - .unused, - }, - .dst_temps = .{.mem}, - .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, - .each = .{ .once = &.{ - .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, - .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ }, - .{ ._, .p_, .xor, .tmp2x, .tmp2x, ._, ._ }, - .{ ._, .p_w, .insr, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0), ._ }, - .{ ._, .p_w, .insr, .tmp2x, .memia(.src1w, .tmp0, .add_unaligned_size), .ui(0), ._ }, - .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, - .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, - .{ ._, .p_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1x, .ui(0), ._ }, - .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, - .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, - } }, - }, .{ - .required_features = .{ .sse2, null, null, null }, - .src_constraints = .{ - .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, - .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, - .any, - }, - .patterns = &.{ - .{ .src = .{ .to_mem, .to_mem, .none } }, - }, - .call_frame = .{ .alignment = .@"16" }, - .extra_temps = .{ - .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, - .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, - .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, - .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divhf3" } } }, - .{ .type = .usize, .kind = .{ .symbol = &.{ .name = switch (direction) { - else => unreachable, - .zero => "__trunch", - .down => "__floorh", - } } } }, - .{ .type = .f16, .kind = .{ .reg = .ax } }, - .unused, - .unused, - .unused, - }, - .dst_temps = .{.mem}, - .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, - .each = .{ .once = &.{ - .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, - .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ }, - .{ ._, .p_, .xor, .tmp2x, .tmp2x, ._, ._ }, - .{ ._, .p_w, .insr, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0), ._ }, - .{ ._, .p_w, .insr, .tmp2x, .memia(.src1w, .tmp0, .add_unaligned_size), .ui(0), ._ }, - .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, - .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, - .{ ._, .p_w, .extr, .tmp5d, .tmp1x, .ui(0), ._ }, - .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp5w, ._, ._ }, - .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, - .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, - } }, - }, .{ - .required_features = .{ .sse, null, null, null }, - .src_constraints = .{ - .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, - .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, - .any, - }, - .patterns = &.{ - .{ .src = .{ .to_mem, .to_mem, .none } }, - }, - .call_frame = .{ .alignment = .@"16" }, - .extra_temps = .{ - .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, - .{ .type = .f16, .kind = .{ .reg = .ax } }, - .{ .type = .f32, .kind = .mem }, - .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, - .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, - .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divhf3" } } }, - .{ .type = .usize, .kind = .{ .symbol = &.{ .name = switch (direction) { - else => unreachable, - .zero => "__trunch", - .down => "__floorh", - } } } }, - .unused, - .unused, - }, - .dst_temps = .{.mem}, - .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, - .each = .{ .once = &.{ - .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, - .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, - .{ ._, ._, .mov, .mem(.tmp2d), .tmp1d, ._, ._ }, - .{ ._, ._ss, .mov, .tmp3x, .mem(.tmp2d), ._, ._ }, - .{ ._, ._, .movzx, .tmp1d, .memia(.src1w, .tmp0, .add_unaligned_size), ._, ._ }, - .{ ._, ._, .mov, .mem(.tmp2d), .tmp1d, ._, ._ }, - .{ ._, ._ss, .mov, .tmp4x, .mem(.tmp2d), ._, ._ }, - .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, - .{ ._, ._, .call, .tmp6d, ._, ._, ._ }, - .{ ._, ._ss, .mov, .mem(.tmp2d), .tmp3x, ._, ._ }, - .{ ._, ._, .mov, .tmp1d, .mem(.tmp2d), ._, ._ }, - .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, - .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, - .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, - } }, - }, .{ - .required_features = .{ .avx, null, null, null }, - .src_constraints = .{ - .{ .scalar_float = .{ .of = .dword, .is = .dword } }, - .{ .scalar_float = .{ .of = .dword, .is = .dword } }, - .any, - }, - .patterns = &.{ - .{ .src = .{ .to_sse, .mem, .none } }, - .{ .src = .{ .to_sse, .to_sse, .none } }, - }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, - .each = .{ .once = &.{ - .{ ._, .v_ss, .div, .dst0x, .src0x, .src1d, ._ }, - .{ ._, .v_ss, .round, .dst0x, .dst0x, .dst0d, .rm(.{ .direction = direction, .precision = .inexact }) }, - } }, - }, .{ - .required_features = .{ .sse4_1, null, null, null }, - .src_constraints = .{ - .{ .scalar_float = .{ .of = .dword, .is = .dword } }, - .{ .scalar_float = .{ .of = .dword, .is = .dword } }, - .any, - }, - .patterns = &.{ - .{ .src = .{ .to_mut_sse, .mem, .none } }, - .{ .src = .{ .to_mut_sse, .to_sse, .none } }, - }, - .dst_temps = .{.{ .ref = .src0 }}, - .each = .{ .once = &.{ - .{ ._, ._ss, .div, .dst0x, .src1d, ._, ._ }, - .{ ._, ._ss, .round, .dst0x, .dst0d, .rm(.{ .direction = direction, .precision = .inexact }), ._ }, - } }, - }, .{ - .required_features = .{ .sse, null, null, null }, - .src_constraints = .{ - .{ .scalar_float = .{ .of = .dword, .is = .dword } }, - .{ .scalar_float = .{ .of = .dword, .is = .dword } }, - .any, - }, - .patterns = &.{ - .{ .src = .{ .{ .to_reg = .xmm0 }, .to_mem, .none } }, - }, - .call_frame = .{ .alignment = .@"16" }, - .extra_temps = .{ - .{ .type = .usize, .kind = .{ .symbol = &.{ .name = switch (direction) { - else => unreachable, - .zero => "truncf", - .down => "floorf", - } } } }, - .unused, - .unused, - .unused, - .unused, - .unused, - .unused, - .unused, - .unused, - }, - .dst_temps = .{.{ .ref = .src0 }}, - .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, - .each = .{ .once = &.{ - .{ ._, ._ss, .div, .dst0x, .src1d, ._, ._ }, - .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, - } }, - }, .{ - .required_features = .{ .avx, null, null, null }, - .src_constraints = .{ - .{ .scalar_float = .{ .of = .xword, .is = .dword } }, - .{ .scalar_float = .{ .of = .xword, .is = .dword } }, - .any, - }, - .patterns = &.{ - .{ .src = .{ .to_sse, .mem, .none } }, - .{ .src = .{ .to_sse, .to_sse, .none } }, - }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, - .each = .{ .once = &.{ - .{ ._, .v_ps, .div, .dst0x, .src0x, .src1x, ._ }, - .{ ._, .v_ps, .round, .dst0x, .dst0x, .rm(.{ .direction = direction, .precision = .inexact }), ._ }, - } }, - }, .{ - .required_features = .{ .sse4_1, null, null, null }, - .src_constraints = .{ - .{ .scalar_float = .{ .of = .xword, .is = .dword } }, - .{ .scalar_float = .{ .of = .xword, .is = .dword } }, - .any, - }, - .patterns = &.{ - .{ .src = .{ .to_mut_sse, .mem, .none } }, - .{ .src = .{ .to_mut_sse, .to_sse, .none } }, - }, - .dst_temps = .{.{ .ref = .src0 }}, - .each = .{ .once = &.{ - .{ ._, ._ps, .div, .dst0x, .src1x, ._, ._ }, - .{ ._, ._ps, .round, .dst0x, .dst0x, .rm(.{ .direction = direction, .precision = .inexact }), ._ }, - } }, - }, .{ - .required_features = .{ .sse, null, null, null }, - .src_constraints = .{ - .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, - .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, - .any, - }, - .patterns = &.{ - .{ .src = .{ .to_mem, .to_mem, .none } }, - }, - .call_frame = .{ .alignment = .@"16" }, - .extra_temps = .{ - .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, - .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, - .{ .type = .usize, .kind = .{ .symbol = &.{ .name = switch (direction) { - else => unreachable, - .zero => "truncf", - .down => "floorf", - } } } }, - .unused, - .unused, - .unused, - .unused, - .unused, - .unused, - }, - .dst_temps = .{.mem}, - .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, - .each = .{ .once = &.{ - .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, - .{ .@"0:", ._ss, .mov, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, - .{ ._, ._ss, .div, .tmp1x, .memia(.src1d, .tmp0, .add_unaligned_size), ._, ._ }, - .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, - .{ ._, ._ss, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, - .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, - .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, - } }, - }, .{ - .required_features = .{ .avx, null, null, null }, - .src_constraints = .{ - .{ .scalar_float = .{ .of = .yword, .is = .dword } }, - .{ .scalar_float = .{ .of = .yword, .is = .dword } }, - .any, - }, - .patterns = &.{ - .{ .src = .{ .to_sse, .mem, .none } }, - .{ .src = .{ .to_sse, .to_sse, .none } }, - }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, - .each = .{ .once = &.{ - .{ ._, .v_ps, .div, .dst0y, .src0y, .src1y, ._ }, - .{ ._, .v_ps, .round, .dst0y, .dst0y, .rm(.{ .direction = direction, .precision = .inexact }), ._ }, - } }, - }, .{ - .required_features = .{ .avx, null, null, null }, - .src_constraints = .{ - .{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } }, - .{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } }, - .any, - }, - .patterns = &.{ - .{ .src = .{ .to_mem, .to_mem, .none } }, - }, - .extra_temps = .{ - .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, - .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } }, - .unused, - .unused, - .unused, - .unused, - .unused, - .unused, - .unused, - }, - .dst_temps = .{.mem}, - .clobbers = .{ .eflags = true }, - .each = .{ .once = &.{ - .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, - .{ .@"0:", .v_ps, .mova, .tmp1y, .memia(.src0y, .tmp0, .add_unaligned_size), ._, ._ }, - .{ ._, .v_ps, .div, .tmp1y, .tmp1y, .memia(.src1y, .tmp0, .add_unaligned_size), ._ }, - .{ ._, .v_ps, .round, .tmp1y, .tmp1y, .rm(.{ .direction = direction, .precision = .inexact }), ._ }, - .{ ._, .v_ps, .mova, .memia(.dst0y, .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, - .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, - .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, - } }, - }, .{ - .required_features = .{ .sse4_1, null, null, null }, - .src_constraints = .{ - .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, - .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, - .any, - }, - .patterns = &.{ - .{ .src = .{ .to_mem, .to_mem, .none } }, - }, - .extra_temps = .{ - .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, - .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } }, - .unused, - .unused, - .unused, - .unused, - .unused, - .unused, - .unused, - }, - .dst_temps = .{.mem}, - .clobbers = .{ .eflags = true }, - .each = .{ .once = &.{ - .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, - .{ .@"0:", ._ps, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, - .{ ._, ._ps, .div, .tmp1x, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ }, - .{ ._, ._ps, .round, .tmp1x, .tmp1x, .rm(.{ .direction = direction, .precision = .inexact }), ._ }, - .{ ._, ._ps, .mova, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, - .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, - .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, - } }, - }, .{ - .required_features = .{ .avx, null, null, null }, - .src_constraints = .{ - .{ .scalar_float = .{ .of = .qword, .is = .qword } }, - .{ .scalar_float = .{ .of = .qword, .is = .qword } }, - .any, - }, - .patterns = &.{ - .{ .src = .{ .to_sse, .mem, .none } }, - .{ .src = .{ .to_sse, .to_sse, .none } }, - }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, - .each = .{ .once = &.{ - .{ ._, .v_sd, .div, .dst0x, .src0x, .src1q, ._ }, - .{ ._, .v_sd, .round, .dst0x, .dst0x, .dst0q, .rm(.{ .direction = direction, .precision = .inexact }) }, - } }, - }, .{ - .required_features = .{ .sse4_1, null, null, null }, - .src_constraints = .{ - .{ .scalar_float = .{ .of = .qword, .is = .qword } }, - .{ .scalar_float = .{ .of = .qword, .is = .qword } }, - .any, - }, - .patterns = &.{ - .{ .src = .{ .to_mut_sse, .mem, .none } }, - .{ .src = .{ .to_mut_sse, .to_sse, .none } }, - }, - .dst_temps = .{.{ .ref = .src0 }}, - .each = .{ .once = &.{ - .{ ._, ._sd, .div, .dst0x, .src1q, ._, ._ }, - .{ ._, ._sd, .round, .dst0x, .dst0q, .rm(.{ .direction = direction, .precision = .inexact }), ._ }, - } }, - }, .{ - .required_features = .{ .sse2, null, null, null }, - .src_constraints = .{ - .{ .scalar_float = .{ .of = .qword, .is = .qword } }, - .{ .scalar_float = .{ .of = .qword, .is = .qword } }, - .any, - }, - .patterns = &.{ - .{ .src = .{ .{ .to_reg = .xmm0 }, .to_mem, .none } }, - }, - .call_frame = .{ .alignment = .@"16" }, - .extra_temps = .{ - .{ .type = .usize, .kind = .{ .symbol = &.{ .name = switch (direction) { - else => unreachable, - .zero => "trunc", - .down => "floor", - } } } }, - .unused, - .unused, - .unused, - .unused, - .unused, - .unused, - .unused, - .unused, - }, - .dst_temps = .{.{ .ref = .src0 }}, - .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, - .each = .{ .once = &.{ - .{ ._, ._sd, .div, .dst0x, .src1q, ._, ._ }, - .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, - } }, - }, .{ - .required_features = .{ .sse, null, null, null }, - .src_constraints = .{ - .{ .scalar_float = .{ .of = .qword, .is = .qword } }, - .{ .scalar_float = .{ .of = .qword, .is = .qword } }, - .any, - }, - .patterns = &.{ - .{ .src = .{ .{ .to_reg = .xmm0 }, .{ .to_reg = .xmm1 }, .none } }, - }, - .call_frame = .{ .alignment = .@"16" }, - .extra_temps = .{ - .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divdf3" } } }, - .{ .type = .usize, .kind = .{ .symbol = &.{ .name = switch (direction) { - else => unreachable, - .zero => "trunc", - .down => "floor", - } } } }, - .unused, - .unused, - .unused, - .unused, - .unused, - .unused, - .unused, - }, - .dst_temps = .{.{ .ref = .src0 }}, - .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, - .each = .{ .once = &.{ - .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, - .{ ._, ._, .call, .tmp1d, ._, ._, ._ }, - } }, - }, .{ - .required_features = .{ .avx, null, null, null }, - .src_constraints = .{ - .{ .scalar_float = .{ .of = .xword, .is = .qword } }, - .{ .scalar_float = .{ .of = .xword, .is = .qword } }, - .any, - }, - .patterns = &.{ - .{ .src = .{ .to_sse, .mem, .none } }, - .{ .src = .{ .to_sse, .to_sse, .none } }, - }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, - .each = .{ .once = &.{ - .{ ._, .v_pd, .div, .dst0x, .src0x, .src1x, ._ }, - .{ ._, .v_pd, .round, .dst0x, .dst0x, .rm(.{ .direction = direction, .precision = .inexact }), ._ }, - } }, - }, .{ - .required_features = .{ .sse4_1, null, null, null }, - .src_constraints = .{ - .{ .scalar_float = .{ .of = .xword, .is = .qword } }, - .{ .scalar_float = .{ .of = .xword, .is = .qword } }, - .any, - }, - .patterns = &.{ - .{ .src = .{ .to_mut_sse, .mem, .none } }, - .{ .src = .{ .to_mut_sse, .to_sse, .none } }, - }, - .dst_temps = .{.{ .ref = .src0 }}, - .each = .{ .once = &.{ - .{ ._, ._pd, .div, .dst0x, .src1x, ._, ._ }, - .{ ._, ._pd, .round, .dst0x, .dst0x, .rm(.{ .direction = direction, .precision = .inexact }), ._ }, - } }, - }, .{ - .required_features = .{ .avx, null, null, null }, - .src_constraints = .{ - .{ .scalar_float = .{ .of = .yword, .is = .qword } }, - .{ .scalar_float = .{ .of = .yword, .is = .qword } }, - .any, - }, - .patterns = &.{ - .{ .src = .{ .to_sse, .mem, .none } }, - .{ .src = .{ .to_sse, .to_sse, .none } }, - }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, - .each = .{ .once = &.{ - .{ ._, .v_pd, .div, .dst0y, .src0y, .src1y, ._ }, - .{ ._, .v_pd, .round, .dst0y, .dst0y, .rm(.{ .direction = direction, .precision = .inexact }), ._ }, - } }, - }, .{ - .required_features = .{ .avx, null, null, null }, - .src_constraints = .{ - .{ .multiple_scalar_float = .{ .of = .yword, .is = .qword } }, - .{ .multiple_scalar_float = .{ .of = .yword, .is = .qword } }, - .any, - }, - .patterns = &.{ - .{ .src = .{ .to_mem, .to_mem, .none } }, - }, - .extra_temps = .{ - .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, - .{ .type = .vector_4_f64, .kind = .{ .rc = .sse } }, - .unused, - .unused, - .unused, - .unused, - .unused, - .unused, - .unused, - }, - .dst_temps = .{.mem}, - .clobbers = .{ .eflags = true }, - .each = .{ .once = &.{ - .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, - .{ .@"0:", .v_pd, .mova, .tmp1y, .memia(.src0y, .tmp0, .add_unaligned_size), ._, ._ }, - .{ ._, .v_pd, .div, .tmp1y, .tmp1y, .memia(.src1y, .tmp0, .add_unaligned_size), ._ }, - .{ ._, .v_pd, .round, .tmp1y, .tmp1y, .rm(.{ .direction = direction, .precision = .inexact }), ._ }, - .{ ._, .v_pd, .mova, .memia(.dst0y, .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, - .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, - .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, - } }, - }, .{ - .required_features = .{ .sse4_1, null, null, null }, - .src_constraints = .{ - .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }, - .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }, - .any, - }, - .patterns = &.{ - .{ .src = .{ .to_mem, .to_mem, .none } }, - }, - .extra_temps = .{ - .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, - .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } }, - .unused, - .unused, - .unused, - .unused, - .unused, - .unused, - .unused, - }, - .dst_temps = .{.mem}, - .clobbers = .{ .eflags = true }, - .each = .{ .once = &.{ - .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, - .{ .@"0:", ._pd, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, - .{ ._, ._pd, .div, .tmp1x, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ }, - .{ ._, ._pd, .round, .tmp1x, .tmp1x, .rm(.{ .direction = direction, .precision = .inexact }), ._ }, - .{ ._, ._pd, .mova, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, - .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, - .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, - } }, - }, .{ - .required_features = .{ .sse2, null, null, null }, - .src_constraints = .{ - .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, - .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, - .any, - }, - .patterns = &.{ - .{ .src = .{ .to_mem, .to_mem, .none } }, - }, - .call_frame = .{ .alignment = .@"16" }, - .extra_temps = .{ - .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, - .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, - .{ .type = .usize, .kind = .{ .symbol = &.{ .name = switch (direction) { - else => unreachable, - .zero => "trunc", - .down => "floor", - } } } }, - .unused, - .unused, - .unused, - .unused, - .unused, - .unused, - }, - .dst_temps = .{.mem}, - .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, - .each = .{ .once = &.{ - .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, - .{ .@"0:", ._sd, .mov, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, - .{ ._, ._sd, .div, .tmp1x, .memia(.src1q, .tmp0, .add_unaligned_size), ._, ._ }, - .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, - .{ ._, ._sd, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, - .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, - .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, - } }, - }, .{ - .required_features = .{ .sse, null, null, null }, - .src_constraints = .{ - .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, - .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, - .any, - }, - .patterns = &.{ - .{ .src = .{ .to_mem, .to_mem, .none } }, - }, - .call_frame = .{ .alignment = .@"16" }, - .extra_temps = .{ - .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, - .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, - .{ .type = .f64, .kind = .{ .reg = .xmm1 } }, - .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divdf3" } } }, - .{ .type = .usize, .kind = .{ .symbol = &.{ .name = switch (direction) { - else => unreachable, - .zero => "trunc", - .down => "floor", - } } } }, - .unused, - .unused, - .unused, - .unused, - }, - .dst_temps = .{.mem}, - .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, - .each = .{ .once = &.{ - .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, - .{ .@"0:", ._ps, .xor, .tmp1x, .tmp1x, ._, ._ }, - .{ ._, ._ps, .xor, .tmp2x, .tmp2x, ._, ._ }, - .{ ._, ._ps, .movl, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, - .{ ._, ._ps, .movl, .tmp2x, .memia(.src1q, .tmp0, .add_unaligned_size), ._, ._ }, - .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, - .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, - .{ ._, ._ps, .movl, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, - .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, - .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, - } }, - }, .{ - .required_features = .{ .x87, null, null, null }, - .src_constraints = .{ - .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, - .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, - .any, - }, - .patterns = &.{ - .{ .src = .{ .to_mem, .to_mem, .none } }, - }, - .call_frame = .{ .size = 16, .alignment = .@"16" }, - .extra_temps = .{ - .{ .type = .f80, .kind = .{ .reg = .st6 } }, - .{ .type = .f80, .kind = .{ .reg = .st7 } }, - .{ .type = .f80, .kind = .{ .frame = .call_frame } }, - .{ .type = .usize, .kind = .{ .symbol = &.{ .name = switch (direction) { - else => unreachable, - .zero => "__truncx", - .down => "__floorx", - } } } }, - .unused, - .unused, - .unused, - .unused, - .unused, - }, - .dst_temps = .{.{ .reg = .st0 }}, - .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, - .each = .{ .once = &.{ - .{ ._, .f_, .ld, .src0t, ._, ._, ._ }, - .{ ._, .f_, .ld, .src1t, ._, ._, ._ }, - .{ ._, .f_p, .div, ._, ._, ._, ._ }, - .{ ._, .f_p, .st, .mem(.tmp2t), ._, ._, ._ }, - .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, - } }, - }, .{ - .required_features = .{ .x87, null, null, null }, - .src_constraints = .{ - .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, - .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, - .any, - }, - .patterns = &.{ - .{ .src = .{ .to_mem, .to_mem, .none } }, - }, - .call_frame = .{ .size = 16, .alignment = .@"16" }, - .extra_temps = .{ - .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, - .{ .type = .f80, .kind = .{ .reg = .st6 } }, - .{ .type = .f80, .kind = .{ .reg = .st7 } }, - .{ .type = .f80, .kind = .{ .frame = .call_frame } }, - .{ .type = .usize, .kind = .{ .symbol = &.{ .name = switch (direction) { - else => unreachable, - .zero => "__truncx", - .down => "__floorx", - } } } }, - .unused, - .unused, - .unused, - .unused, - }, - .dst_temps = .{.mem}, - .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, - .each = .{ .once = &.{ - .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, - .{ .@"0:", .f_, .ld, .memia(.src0t, .tmp0, .add_unaligned_size), ._, ._, ._ }, - .{ ._, .f_, .ld, .memia(.src1t, .tmp0, .add_unaligned_size), ._, ._, ._ }, - .{ ._, .f_p, .div, ._, ._, ._, ._ }, - .{ ._, .f_p, .st, .mem(.tmp3t), ._, ._, ._ }, - .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, - .{ .pseudo, .f_cstp, .de, ._, ._, ._, ._ }, - .{ ._, .f_p, .st, .memia(.dst0t, .tmp0, .add_unaligned_size), ._, ._, ._ }, - .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, - .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, - } }, - }, .{ - .required_features = .{ .sse, null, null, null }, - .src_constraints = .{ - .{ .scalar_float = .{ .of = .xword, .is = .xword } }, - .{ .scalar_float = .{ .of = .xword, .is = .xword } }, - .any, - }, - .patterns = &.{ - .{ .src = .{ .{ .to_reg = .xmm0 }, .{ .to_reg = .xmm1 }, .none } }, - }, - .call_frame = .{ .alignment = .@"16" }, - .extra_temps = .{ - .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divtf3" } } }, - .{ .type = .usize, .kind = .{ .symbol = &.{ .name = switch (direction) { - else => unreachable, - .zero => "truncq", - .down => "floorq", - } } } }, - .unused, - .unused, - .unused, - .unused, - .unused, - .unused, - .unused, - }, - .dst_temps = .{.{ .ref = .src0 }}, - .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, - .each = .{ .once = &.{ - .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, - .{ ._, ._, .call, .tmp1d, ._, ._, ._ }, - } }, - }, .{ - .required_features = .{ .avx, null, null, null }, - .src_constraints = .{ - .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, - .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, - .any, - }, - .patterns = &.{ - .{ .src = .{ .to_mem, .to_mem, .none } }, - }, - .call_frame = .{ .alignment = .@"16" }, - .extra_temps = .{ - .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, - .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, - .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, - .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divtf3" } } }, - .{ .type = .usize, .kind = .{ .symbol = &.{ .name = switch (direction) { - else => unreachable, - .zero => "truncq", - .down => "floorq", - } } } }, - .unused, - .unused, - .unused, - .unused, - }, - .dst_temps = .{.mem}, - .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, - .each = .{ .once = &.{ - .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, - .{ .@"0:", .v_dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, - .{ ._, .v_dqa, .mov, .tmp2x, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ }, - .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, - .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, - .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, - .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, - .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, - } }, - }, .{ - .required_features = .{ .sse2, null, null, null }, - .src_constraints = .{ - .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, - .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, - .any, - }, - .patterns = &.{ - .{ .src = .{ .to_mem, .to_mem, .none } }, - }, - .call_frame = .{ .alignment = .@"16" }, - .extra_temps = .{ - .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, - .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, - .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, - .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divtf3" } } }, - .{ .type = .usize, .kind = .{ .symbol = &.{ .name = switch (direction) { - else => unreachable, - .zero => "truncq", - .down => "floorq", - } } } }, - .unused, - .unused, - .unused, - .unused, - }, - .dst_temps = .{.mem}, - .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, - .each = .{ .once = &.{ - .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, - .{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, - .{ ._, ._dqa, .mov, .tmp2x, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ }, - .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, - .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, - .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, - .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, - .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, - } }, - }, .{ - .required_features = .{ .sse, null, null, null }, - .src_constraints = .{ - .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, - .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, - .any, - }, - .patterns = &.{ - .{ .src = .{ .to_mem, .to_mem, .none } }, - }, - .call_frame = .{ .alignment = .@"16" }, - .extra_temps = .{ - .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, - .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, - .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, - .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divtf3" } } }, - .{ .type = .usize, .kind = .{ .symbol = &.{ .name = switch (direction) { - else => unreachable, - .zero => "truncq", - .down => "floorq", - } } } }, - .unused, - .unused, - .unused, - .unused, - }, - .dst_temps = .{.mem}, - .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, - .each = .{ .once = &.{ - .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, - .{ .@"0:", ._ps, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, - .{ ._, ._ps, .mova, .tmp2x, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ }, - .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, - .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, - .{ ._, ._ps, .mova, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, - .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, - .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, - } }, + cg.select(&res, &.{ty}, &ops, comptime &.{ .{ + .src_constraints = .{ .{ .signed_int = .byte }, .{ .signed_int = .byte }, .any }, + .patterns = &.{ + .{ .src = .{ .{ .to_reg = .al }, .mem, .none } }, + .{ .src = .{ .mem, .{ .to_reg = .al }, .none }, .commute = .{ 0, 1 } }, + .{ .src = .{ .{ .to_reg = .al }, .to_gpr, .none } }, + }, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, .i_, .mul, .src1b, ._, ._, ._ }, + } }, + }, .{ + .src_constraints = .{ .{ .unsigned_int = .byte }, .{ .unsigned_int = .byte }, .any }, + .patterns = &.{ + .{ .src = .{ .{ .to_reg = .al }, .mem, .none } }, + .{ .src = .{ .mem, .{ .to_reg = .al }, .none }, .commute = .{ 0, 1 } }, + .{ .src = .{ .{ .to_reg = .al }, .to_gpr, .none } }, + }, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .mul, .src1b, ._, ._, ._ }, + } }, + }, .{ + .src_constraints = .{ .{ .int = .word }, .{ .int = .word }, .any }, + .patterns = &.{ + .{ .src = .{ .mem, .imm16, .none } }, + .{ .src = .{ .imm16, .mem, .none }, .commute = .{ 0, 1 } }, + .{ .src = .{ .to_gpr, .imm16, .none } }, + .{ .src = .{ .imm16, .to_gpr, .none }, .commute = .{ 0, 1 } }, + }, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } }, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, .i_, .mul, .dst0w, .src0w, .src1w, ._ }, + } }, + }, .{ + .src_constraints = .{ .{ .int = .word }, .{ .int = .word }, .any }, + .patterns = &.{ + .{ .src = .{ .to_mut_gpr, .mem, .none } }, + .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } }, + .{ .src = .{ .to_mut_gpr, .to_gpr, .none } }, + }, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, .i_, .mul, .dst0w, .src1w, ._, ._ }, + } }, + }, .{ + .src_constraints = .{ .{ .int = .dword }, .{ .int = .dword }, .any }, + .patterns = &.{ + .{ .src = .{ .mem, .imm32, .none } }, + .{ .src = .{ .imm32, .mem, .none }, .commute = .{ 0, 1 } }, + .{ .src = .{ .to_gpr, .imm32, .none } }, + .{ .src = .{ .imm32, .to_gpr, .none }, .commute = .{ 0, 1 } }, + }, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } }, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, .i_, .mul, .dst0d, .src0d, .src1d, ._ }, + } }, + }, .{ + .src_constraints = .{ .{ .int = .dword }, .{ .int = .dword }, .any }, + .patterns = &.{ + .{ .src = .{ .to_mut_gpr, .mem, .none } }, + .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } }, + .{ .src = .{ .to_mut_gpr, .to_gpr, .none } }, + }, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, .i_, .mul, .dst0d, .src1d, ._, ._ }, + } }, + }, .{ + .required_features = .{ .@"64bit", null, null, null }, + .src_constraints = .{ .{ .int = .qword }, .{ .int = .qword }, .any }, + .patterns = &.{ + .{ .src = .{ .mem, .simm32, .none } }, + .{ .src = .{ .simm32, .mem, .none }, .commute = .{ 0, 1 } }, + .{ .src = .{ .to_gpr, .simm32, .none } }, + .{ .src = .{ .simm32, .to_gpr, .none }, .commute = .{ 0, 1 } }, + }, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } }, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, .i_, .mul, .dst0q, .src0q, .src1q, ._ }, + } }, + }, .{ + .required_features = .{ .@"64bit", null, null, null }, + .src_constraints = .{ .{ .int = .qword }, .{ .int = .qword }, .any }, + .patterns = &.{ + .{ .src = .{ .to_mut_gpr, .mem, .none } }, + .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } }, + .{ .src = .{ .to_mut_gpr, .to_gpr, .none } }, + }, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, .i_, .mul, .dst0q, .src1q, ._, ._ }, + } }, + }, .{ + .required_features = .{ .@"64bit", null, null, null }, + .src_constraints = .{ .{ .int = .xword }, .{ .int = .xword }, .any }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .extra_temps = .{ + .{ .type = .u64, .kind = .{ .reg = .rax } }, + .{ .type = .u64, .kind = .{ .reg = .rdx } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0q, .src0q, ._, ._ }, + .{ ._, ._, .mul, .src1q, ._, ._, ._ }, + .{ ._, ._, .mov, .dst0q, .tmp0q, ._, ._ }, + .{ ._, ._, .mov, .tmp0q, .src0q, ._, ._ }, + .{ ._, .i_, .mul, .tmp0q, .memd(.src1q, 8), ._, ._ }, + .{ ._, ._, .add, .tmp1q, .tmp0q, ._, ._ }, + .{ ._, ._, .mov, .tmp0q, .src1q, ._, ._ }, + .{ ._, .i_, .mul, .tmp0q, .memd(.src0q, 8), ._, ._ }, + .{ ._, ._, .add, .tmp1q, .tmp0q, ._, ._ }, + .{ ._, ._, .mov, .memd(.dst0q, 8), .tmp1q, ._, ._ }, + } }, + }, .{ + .required_features = .{ .@"64bit", .bmi2, .adx, null }, + .src_constraints = .{ + .{ .remainder_int = .{ .of = .qword, .is = .qword } }, + .{ .remainder_int = .{ .of = .qword, .is = .qword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .u64, .kind = .{ .reg = .rdx } }, + .{ .type = .isize, .kind = .{ .reg = .rcx } }, + .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, + .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, + .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_size), ._, ._ }, + .{ ._, ._, .lea, .tmp1p, .mem(.src1), ._, ._ }, + .{ .@"0:", ._, .xor, .tmp2d, .tmp2d, ._, ._ }, + .{ ._, ._, .@"or", .tmp2q, .memi(.src0q, .tmp0), ._, ._ }, + .{ ._, ._z, .j, .@"2f", ._, ._, ._ }, + .{ ._, ._, .lea, .tmp3p, .leaad(.tmp0, .sub_src0_size, 8), ._, ._ }, + .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, + .{ .@"1:", ._x, .mul, .tmp6q, .tmp5q, .leai(.tmp1q, .tmp3), ._ }, + .{ ._, ._x, .adc, .tmp5q, .tmp4q, ._, ._ }, + .{ ._, ._, .mov, .memiad(.dst0q, .tmp3, .add_size, -8), .tmp5q, ._, ._ }, + .{ ._, ._rcxz, .j, .@"1f", ._, ._, ._ }, + .{ ._, ._x, .ado, .tmp6q, .memia(.dst0q, .tmp3, .add_size), ._, ._ }, + .{ ._, ._, .mov, .tmp4q, .tmp6q, ._, ._ }, + .{ ._, ._, .lea, .tmp3p, .lead(.tmp3, 8), ._, ._ }, + .{ ._, ._mp, .j, .@"1b", ._, ._, ._ }, + .{ .@"2:", ._, .mov, .memi(.dst0q, .tmp0), .tmp2q, ._, ._ }, + .{ .@"1:", ._, .lea, .tmp1p, .lead(.tmp1, 8), ._, ._ }, + .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, + .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .@"64bit", .bmi2, .slow_incdec, null }, + .src_constraints = .{ + .{ .remainder_int = .{ .of = .qword, .is = .qword } }, + .{ .remainder_int = .{ .of = .qword, .is = .qword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .u64, .kind = .{ .reg = .rdx } }, + .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, + .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, + .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, + .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_size_div_8), ._, ._ }, + .{ ._, ._, .lea, .tmp1p, .memd(.src1, 8), ._, ._ }, + .{ .@"0:", ._, .lea, .tmp2p, .leaa(.tmp0, .sub_src0_size_div_8), ._, ._ }, + .{ ._, ._, .xor, .tmp3d, .tmp3d, ._, ._ }, + .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, + .{ ._, ._, .xor, .tmp5d, .tmp5d, ._, ._ }, + .{ ._, ._, .@"or", .tmp3q, .memsi(.src0q, .@"8", .tmp0), ._, ._ }, + .{ ._, ._nz, .j, .@"2f", ._, ._, ._ }, + .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp3q, ._, ._ }, + .{ ._, ._mp, .j, .@"3f", ._, ._, ._ }, + .{ .@"1:", ._, .adc, .tmp7q, .memsia(.dst0q, .@"8", .tmp2, .add_size), ._, ._ }, + .{ ._, ._, .adc, .tmp4b, .si(0), ._, ._ }, + .{ ._, ._, .mov, .tmp5q, .tmp7q, ._, ._ }, + .{ ._, ._l, .sh, .tmp4b, .ui(4), ._, ._ }, + .{ .@"2:", ._x, .mul, .tmp7q, .tmp6q, .leasi(.tmp1q, .@"8", .tmp2), ._ }, + .{ ._, ._, .adc, .tmp6q, .tmp5q, ._, ._ }, + .{ ._, ._, .mov, .memsia(.dst0q, .@"8", .tmp2, .add_size), .tmp6q, ._, ._ }, + .{ ._, ._c, .in, .tmp2p, ._, ._, ._ }, + .{ ._, ._nz, .j, .@"1b", ._, ._, ._ }, + .{ .@"3:", ._, .lea, .tmp1p, .lead(.tmp1, 8), ._, ._ }, + .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, + .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .@"64bit", .bmi2, null, null }, + .src_constraints = .{ + .{ .remainder_int = .{ .of = .qword, .is = .qword } }, + .{ .remainder_int = .{ .of = .qword, .is = .qword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .u64, .kind = .{ .reg = .rdx } }, + .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, + .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, + .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, + .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_size_div_8), ._, ._ }, + .{ ._, ._, .lea, .tmp1p, .memd(.src1, 8), ._, ._ }, + .{ .@"0:", ._, .lea, .tmp2p, .leaa(.tmp0, .sub_src0_size_div_8), ._, ._ }, + .{ ._, ._, .xor, .tmp3d, .tmp3d, ._, ._ }, + .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, + .{ ._, ._, .xor, .tmp5d, .tmp5d, ._, ._ }, + .{ ._, ._, .@"or", .tmp3q, .memsi(.src0q, .@"8", .tmp0), ._, ._ }, + .{ ._, ._nz, .j, .@"2f", ._, ._, ._ }, + .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp3q, ._, ._ }, + .{ ._, ._mp, .j, .@"3f", ._, ._, ._ }, + .{ .@"1:", ._, .adc, .tmp7q, .memsia(.dst0q, .@"8", .tmp2, .add_size), ._, ._ }, + .{ ._, ._, .adc, .tmp4b, .si(0), ._, ._ }, + .{ ._, ._, .mov, .tmp5q, .tmp7q, ._, ._ }, + .{ ._, ._l, .sh, .tmp4b, .ui(4), ._, ._ }, + .{ .@"2:", ._x, .mul, .tmp7q, .tmp6q, .leasi(.tmp1q, .@"8", .tmp2), ._ }, + .{ ._, ._, .adc, .tmp6q, .tmp5q, ._, ._ }, + .{ ._, ._, .mov, .memsia(.dst0q, .@"8", .tmp2, .add_size), .tmp6q, ._, ._ }, + .{ ._, ._c, .in, .tmp2p, ._, ._, ._ }, + .{ ._, ._nz, .j, .@"1b", ._, ._, ._ }, + .{ .@"3:", ._, .lea, .tmp1p, .lead(.tmp1, 8), ._, ._ }, + .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, + .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .@"64bit", .slow_incdec, null, null }, + .src_constraints = .{ + .{ .remainder_int = .{ .of = .qword, .is = .qword } }, + .{ .remainder_int = .{ .of = .qword, .is = .qword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, + .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, + .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, + .{ .type = .u64, .kind = .{ .reg = .rax } }, + .{ .type = .u64, .kind = .{ .reg = .rdx } }, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_size_div_8), ._, ._ }, + .{ ._, ._, .lea, .tmp1p, .memd(.src1, 8), ._, ._ }, + .{ .@"0:", ._, .lea, .tmp2p, .leaa(.tmp0, .sub_src0_size_div_8), ._, ._ }, + .{ ._, ._, .xor, .tmp3d, .tmp3d, ._, ._ }, + .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, + .{ ._, ._, .xor, .tmp5d, .tmp5d, ._, ._ }, + .{ ._, ._, .@"or", .tmp3q, .memsi(.src0q, .@"8", .tmp0), ._, ._ }, + .{ ._, ._nz, .j, .@"2f", ._, ._, ._ }, + .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp3q, ._, ._ }, + .{ ._, ._mp, .j, .@"3f", ._, ._, ._ }, + .{ .@"1:", ._, .adc, .tmp7q, .memsia(.dst0q, .@"8", .tmp2, .add_size), ._, ._ }, + .{ ._, ._, .adc, .tmp4b, .si(0), ._, ._ }, + .{ ._, ._, .mov, .tmp5q, .tmp7q, ._, ._ }, + .{ .@"2:", ._, .mov, .tmp6q, .tmp3q, ._, ._ }, + .{ ._, ._, .mul, .leasi(.tmp1q, .@"8", .tmp2), ._, ._, ._ }, + .{ ._, ._l, .sh, .tmp4b, .ui(4), ._, ._ }, + .{ ._, ._, .adc, .tmp6q, .tmp5q, ._, ._ }, + .{ ._, ._, .mov, .memsia(.dst0q, .@"8", .tmp2, .add_size), .tmp6q, ._, ._ }, + .{ ._, ._c, .in, .tmp2p, ._, ._, ._ }, + .{ ._, ._nz, .j, .@"1b", ._, ._, ._ }, + .{ .@"3:", ._, .lea, .tmp1p, .lead(.tmp1, 8), ._, ._ }, + .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, + .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .@"64bit", null, null, null }, + .src_constraints = .{ + .{ .remainder_int = .{ .of = .qword, .is = .qword } }, + .{ .remainder_int = .{ .of = .qword, .is = .qword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, + .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, + .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, + .{ .type = .u64, .kind = .{ .reg = .rax } }, + .{ .type = .u64, .kind = .{ .reg = .rdx } }, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_size_div_8), ._, ._ }, + .{ ._, ._, .lea, .tmp1p, .memd(.src1, 8), ._, ._ }, + .{ .@"0:", ._, .lea, .tmp2p, .leaa(.tmp0, .sub_src0_size_div_8), ._, ._ }, + .{ ._, ._, .xor, .tmp3d, .tmp3d, ._, ._ }, + .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, + .{ ._, ._, .xor, .tmp5d, .tmp5d, ._, ._ }, + .{ ._, ._, .@"or", .tmp3q, .memsi(.src0q, .@"8", .tmp0), ._, ._ }, + .{ ._, ._nz, .j, .@"2f", ._, ._, ._ }, + .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp3q, ._, ._ }, + .{ ._, ._mp, .j, .@"3f", ._, ._, ._ }, + .{ .@"1:", ._, .adc, .tmp7q, .memsia(.dst0q, .@"8", .tmp2, .add_size), ._, ._ }, + .{ ._, ._, .adc, .tmp4b, .si(0), ._, ._ }, + .{ ._, ._, .mov, .tmp5q, .tmp7q, ._, ._ }, + .{ .@"2:", ._, .mov, .tmp6q, .tmp3q, ._, ._ }, + .{ ._, ._, .mul, .leasi(.tmp1q, .@"8", .tmp2), ._, ._, ._ }, + .{ ._, ._l, .sh, .tmp4b, .ui(4), ._, ._ }, + .{ ._, ._, .adc, .tmp6q, .tmp5q, ._, ._ }, + .{ ._, ._, .mov, .memsia(.dst0q, .@"8", .tmp2, .add_size), .tmp6q, ._, ._ }, + .{ ._, ._c, .in, .tmp2p, ._, ._, ._ }, + .{ ._, ._nz, .j, .@"1b", ._, ._, ._ }, + .{ .@"3:", ._, .lea, .tmp1p, .lead(.tmp1, 8), ._, ._ }, + .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, + .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .f16c, null, null, null }, + .src_constraints = .{ + .{ .scalar_float = .{ .of = .word, .is = .word } }, + .{ .scalar_float = .{ .of = .word, .is = .word } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_sse, .to_sse, .none } }, + }, + .extra_temps = .{ + .{ .type = .f32, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .sse } } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, + .each = .{ .once = &.{ + .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ }, + .{ ._, .v_ps, .cvtph2, .tmp0x, .src1q, ._, ._ }, + .{ ._, .v_ss, .mul, .dst0x, .dst0x, .tmp0d, ._ }, + .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ }, + } }, + }, .{ + .required_features = .{ .sse, null, null, null }, + .src_constraints = .{ + .{ .scalar_float = .{ .of = .word, .is = .word } }, + .{ .scalar_float = .{ .of = .word, .is = .word } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .{ .to_reg = .xmm0 }, .{ .to_reg = .xmm1 }, .none } }, + }, + .call_frame = .{ .alignment = .@"16" }, + .extra_temps = .{ + .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__mulhf3" } } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, + .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, + .each = .{ .once = &.{ + .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .f16c, null, null, null }, + .src_constraints = .{ + .{ .scalar_float = .{ .of = .qword, .is = .word } }, + .{ .scalar_float = .{ .of = .qword, .is = .word } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .mem, .mem, .none } }, + .{ .src = .{ .to_sse, .mem, .none } }, + .{ .src = .{ .mem, .to_sse, .none } }, + .{ .src = .{ .to_sse, .to_sse, .none } }, + }, + .extra_temps = .{ + .{ .type = .vector_4_f32, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .sse } } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, + .each = .{ .once = &.{ + .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ }, + .{ ._, .v_ps, .cvtph2, .tmp0x, .src1q, ._, ._ }, + .{ ._, .v_ps, .mul, .dst0x, .dst0x, .tmp0x, ._ }, + .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ }, + } }, + }, .{ + .required_features = .{ .f16c, null, null, null }, + .src_constraints = .{ + .{ .scalar_float = .{ .of = .xword, .is = .word } }, + .{ .scalar_float = .{ .of = .xword, .is = .word } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .mem, .mem, .none } }, + .{ .src = .{ .to_sse, .mem, .none } }, + .{ .src = .{ .mem, .to_sse, .none } }, + .{ .src = .{ .to_sse, .to_sse, .none } }, + }, + .extra_temps = .{ + .{ .type = .vector_8_f32, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .sse } } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, + .each = .{ .once = &.{ + .{ ._, .v_ps, .cvtph2, .dst0y, .src0x, ._, ._ }, + .{ ._, .v_ps, .cvtph2, .tmp0y, .src1x, ._, ._ }, + .{ ._, .v_ps, .mul, .dst0y, .dst0y, .tmp0y, ._ }, + .{ ._, .v_, .cvtps2ph, .dst0x, .dst0y, .rm(.{}), ._ }, + } }, + }, .{ + .required_features = .{ .f16c, null, null, null }, + .src_constraints = .{ + .{ .multiple_scalar_float = .{ .of = .xword, .is = .word } }, + .{ .multiple_scalar_float = .{ .of = .xword, .is = .word } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } }, + .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", .v_ps, .cvtph2, .tmp1y, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, .v_ps, .cvtph2, .tmp2y, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, .v_ps, .mul, .tmp1y, .tmp1y, .tmp2y, ._ }, + .{ ._, .v_, .cvtps2ph, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1y, .rm(.{}), ._ }, + .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .avx, null, null, null }, + .src_constraints = .{ + .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, + .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .call_frame = .{ .alignment = .@"16" }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, + .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, + .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__mulhf3" } } }, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", .vp_, .xor, .tmp2x, .tmp2x, .tmp2x, ._ }, + .{ ._, .vp_w, .insr, .tmp1x, .tmp2x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0) }, + .{ ._, .vp_w, .insr, .tmp2x, .tmp2x, .memia(.src1w, .tmp0, .add_unaligned_size), .ui(0) }, + .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, + .{ ._, .vp_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1x, .ui(0), ._ }, + .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .sse4_1, null, null, null }, + .src_constraints = .{ + .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, + .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .call_frame = .{ .alignment = .@"16" }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, + .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, + .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__mulhf3" } } }, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ }, + .{ ._, .p_, .xor, .tmp2x, .tmp2x, ._, ._ }, + .{ ._, .p_w, .insr, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0), ._ }, + .{ ._, .p_w, .insr, .tmp2x, .memia(.src1w, .tmp0, .add_unaligned_size), .ui(0), ._ }, + .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, + .{ ._, .p_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1x, .ui(0), ._ }, + .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .sse2, null, null, null }, + .src_constraints = .{ + .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, + .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .call_frame = .{ .alignment = .@"16" }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, + .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, + .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__mulhf3" } } }, + .{ .type = .f16, .kind = .{ .reg = .ax } }, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ }, + .{ ._, .p_, .xor, .tmp2x, .tmp2x, ._, ._ }, + .{ ._, .p_w, .insr, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0), ._ }, + .{ ._, .p_w, .insr, .tmp2x, .memia(.src1w, .tmp0, .add_unaligned_size), .ui(0), ._ }, + .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, + .{ ._, .p_w, .extr, .tmp4d, .tmp1x, .ui(0), ._ }, + .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp4w, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .sse, null, null, null }, + .src_constraints = .{ + .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, + .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .call_frame = .{ .alignment = .@"16" }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .f16, .kind = .{ .reg = .ax } }, + .{ .type = .f32, .kind = .mem }, + .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, + .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, + .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__mulhf3" } } }, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._, .mov, .mem(.tmp2d), .tmp1d, ._, ._ }, + .{ ._, ._ss, .mov, .tmp3x, .mem(.tmp2d), ._, ._ }, + .{ ._, ._, .movzx, .tmp1d, .memia(.src1w, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._, .mov, .mem(.tmp2d), .tmp1d, ._, ._ }, + .{ ._, ._ss, .mov, .tmp4x, .mem(.tmp2d), ._, ._ }, + .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, + .{ ._, ._ss, .mov, .mem(.tmp2d), .tmp3x, ._, ._ }, + .{ ._, ._, .mov, .tmp1d, .mem(.tmp2d), ._, ._ }, + .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .avx, null, null, null }, + .src_constraints = .{ + .{ .scalar_float = .{ .of = .dword, .is = .dword } }, + .{ .scalar_float = .{ .of = .dword, .is = .dword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_sse, .mem, .none } }, + .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, + .{ .src = .{ .to_sse, .to_sse, .none } }, + }, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, + .each = .{ .once = &.{ + .{ ._, .v_ss, .mul, .dst0x, .src0x, .src1d, ._ }, + } }, + }, .{ + .required_features = .{ .sse, null, null, null }, + .src_constraints = .{ + .{ .scalar_float = .{ .of = .dword, .is = .dword } }, + .{ .scalar_float = .{ .of = .dword, .is = .dword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mut_sse, .mem, .none } }, + .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } }, + .{ .src = .{ .to_mut_sse, .to_sse, .none } }, + }, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, + .each = .{ .once = &.{ + .{ ._, ._ss, .mul, .dst0x, .src1d, ._, ._ }, + } }, + }, .{ + .required_features = .{ .avx, null, null, null }, + .src_constraints = .{ + .{ .scalar_float = .{ .of = .xword, .is = .dword } }, + .{ .scalar_float = .{ .of = .xword, .is = .dword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_sse, .mem, .none } }, + .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, + .{ .src = .{ .to_sse, .to_sse, .none } }, + }, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, + .each = .{ .once = &.{ + .{ ._, .v_ps, .mul, .dst0x, .src0x, .src1x, ._ }, + } }, + }, .{ + .required_features = .{ .sse, null, null, null }, + .src_constraints = .{ + .{ .scalar_float = .{ .of = .xword, .is = .dword } }, + .{ .scalar_float = .{ .of = .xword, .is = .dword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mut_sse, .mem, .none } }, + .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } }, + .{ .src = .{ .to_mut_sse, .to_sse, .none } }, + }, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, + .each = .{ .once = &.{ + .{ ._, ._ps, .mul, .dst0x, .src1x, ._, ._ }, + } }, + }, .{ + .required_features = .{ .avx, null, null, null }, + .src_constraints = .{ + .{ .scalar_float = .{ .of = .yword, .is = .dword } }, + .{ .scalar_float = .{ .of = .yword, .is = .dword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_sse, .mem, .none } }, + .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, + .{ .src = .{ .to_sse, .to_sse, .none } }, + }, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, + .each = .{ .once = &.{ + .{ ._, .v_ps, .mul, .dst0y, .src0y, .src1y, ._ }, + } }, + }, .{ + .required_features = .{ .avx, null, null, null }, + .src_constraints = .{ + .{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } }, + .{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", .v_ps, .mova, .tmp1y, .memia(.src0y, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, .v_ps, .mul, .tmp1y, .tmp1y, .memia(.src1y, .tmp0, .add_unaligned_size), ._ }, + .{ ._, .v_ps, .mova, .memia(.dst0y, .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .sse, null, null, null }, + .src_constraints = .{ + .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, + .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", ._ps, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._ps, .mul, .tmp1x, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._ps, .mova, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .avx, null, null, null }, + .src_constraints = .{ + .{ .scalar_float = .{ .of = .qword, .is = .qword } }, + .{ .scalar_float = .{ .of = .qword, .is = .qword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_sse, .mem, .none } }, + .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, + .{ .src = .{ .to_sse, .to_sse, .none } }, + }, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, + .each = .{ .once = &.{ + .{ ._, .v_sd, .mul, .dst0x, .src0x, .src1q, ._ }, + } }, + }, .{ + .required_features = .{ .sse2, null, null, null }, + .src_constraints = .{ + .{ .scalar_float = .{ .of = .qword, .is = .qword } }, + .{ .scalar_float = .{ .of = .qword, .is = .qword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mut_sse, .mem, .none } }, + .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } }, + .{ .src = .{ .to_mut_sse, .to_sse, .none } }, + }, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, + .each = .{ .once = &.{ + .{ ._, ._sd, .mul, .dst0x, .src1q, ._, ._ }, + } }, + }, .{ + .required_features = .{ .x87, null, null, null }, + .src_constraints = .{ + .{ .scalar_float = .{ .of = .qword, .is = .qword } }, + .{ .scalar_float = .{ .of = .qword, .is = .qword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .mem, .mem, .none } }, + }, + .extra_temps = .{ + .{ .type = .f64, .kind = .{ .reg = .st6 } }, + .{ .type = .f64, .kind = .{ .reg = .st7 } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .each = .{ .once = &.{ + .{ ._, .f_, .ld, .src0q, ._, ._, ._ }, + .{ ._, .f_, .mul, .src1q, ._, ._, ._ }, + .{ ._, .f_p, .st, .dst0q, ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .avx, null, null, null }, + .src_constraints = .{ + .{ .scalar_float = .{ .of = .xword, .is = .qword } }, + .{ .scalar_float = .{ .of = .xword, .is = .qword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_sse, .mem, .none } }, + .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, + .{ .src = .{ .to_sse, .to_sse, .none } }, + }, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, + .each = .{ .once = &.{ + .{ ._, .v_pd, .mul, .dst0x, .src0x, .src1x, ._ }, + } }, + }, .{ + .required_features = .{ .sse2, null, null, null }, + .src_constraints = .{ + .{ .scalar_float = .{ .of = .xword, .is = .qword } }, + .{ .scalar_float = .{ .of = .xword, .is = .qword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mut_sse, .mem, .none } }, + .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } }, + .{ .src = .{ .to_mut_sse, .to_sse, .none } }, + }, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, + .each = .{ .once = &.{ + .{ ._, ._pd, .mul, .dst0x, .src1x, ._, ._ }, + } }, + }, .{ + .required_features = .{ .avx, null, null, null }, + .src_constraints = .{ + .{ .scalar_float = .{ .of = .yword, .is = .qword } }, + .{ .scalar_float = .{ .of = .yword, .is = .qword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_sse, .mem, .none } }, + .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, + .{ .src = .{ .to_sse, .to_sse, .none } }, + }, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, + .each = .{ .once = &.{ + .{ ._, .v_pd, .mul, .dst0y, .src0y, .src1y, ._ }, + } }, + }, .{ + .required_features = .{ .avx, null, null, null }, + .src_constraints = .{ + .{ .multiple_scalar_float = .{ .of = .yword, .is = .qword } }, + .{ .multiple_scalar_float = .{ .of = .yword, .is = .qword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .vector_4_f64, .kind = .{ .rc = .sse } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", .v_pd, .mova, .tmp1y, .memia(.src0y, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, .v_pd, .mul, .tmp1y, .tmp1y, .memia(.src1y, .tmp0, .add_unaligned_size), ._ }, + .{ ._, .v_pd, .mova, .memia(.dst0y, .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .sse2, null, null, null }, + .src_constraints = .{ + .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }, + .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", ._pd, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._pd, .mul, .tmp1x, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._pd, .mova, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .x87, null, null, null }, + .src_constraints = .{ + .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, + .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .f64, .kind = .{ .reg = .st6 } }, + .{ .type = .f64, .kind = .{ .reg = .st7 } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", .f_, .ld, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._, ._ }, + .{ ._, .f_, .mul, .memia(.src1q, .tmp0, .add_unaligned_size), ._, ._, ._ }, + .{ ._, .f_p, .st, .memia(.dst0q, .tmp0, .add_unaligned_size), ._, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .x87, null, null, null }, + .src_constraints = .{ + .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, + .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .mem, .mem, .none } }, + }, + .extra_temps = .{ + .{ .type = .f80, .kind = .{ .reg = .st6 } }, + .{ .type = .f80, .kind = .{ .reg = .st7 } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .{ .rc = .x87 }, .unused }, + .each = .{ .once = &.{ + .{ ._, .f_, .ld, .src0t, ._, ._, ._ }, + .{ ._, .f_, .ld, .src1t, ._, ._, ._ }, + .{ ._, .f_p, .mul, ._, ._, ._, ._ }, + .{ ._, .f_p, .st, .dst0t, ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .x87, null, null, null }, + .src_constraints = .{ + .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, + .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_x87, .mem, .none }, .commute = .{ 0, 1 } }, + .{ .src = .{ .mem, .to_x87, .none } }, + .{ .src = .{ .to_x87, .to_x87, .none } }, + }, + .extra_temps = .{ + .{ .type = .f80, .kind = .{ .reg = .st7 } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .{ .rc = .x87 }, .unused }, + .each = .{ .once = &.{ + .{ ._, .f_, .ld, .src0t, ._, ._, ._ }, + .{ ._, .f_, .mul, .tmp0t, .src1t, ._, ._ }, + .{ ._, .f_p, .st, .dst0t, ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .x87, null, null, null }, + .src_constraints = .{ + .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, + .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .f80, .kind = .{ .reg = .st6 } }, + .{ .type = .f80, .kind = .{ .reg = .st7 } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", .f_, .ld, .memia(.src0t, .tmp0, .add_unaligned_size), ._, ._, ._ }, + .{ ._, .f_, .ld, .memia(.src1t, .tmp0, .add_unaligned_size), ._, ._, ._ }, + .{ ._, .f_p, .mul, ._, ._, ._, ._ }, + .{ ._, .f_p, .st, .memia(.dst0t, .tmp0, .add_unaligned_size), ._, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .sse, null, null, null }, + .src_constraints = .{ + .{ .scalar_float = .{ .of = .xword, .is = .xword } }, + .{ .scalar_float = .{ .of = .xword, .is = .xword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .{ .to_reg = .xmm0 }, .{ .to_reg = .xmm1 }, .none } }, + }, + .call_frame = .{ .alignment = .@"16" }, + .extra_temps = .{ + .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__multf3" } } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, + .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, + .each = .{ .once = &.{ + .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .avx, null, null, null }, + .src_constraints = .{ + .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, + .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .call_frame = .{ .alignment = .@"16" }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, + .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, + .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__multf3" } } }, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", .v_dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, .v_dqa, .mov, .tmp2x, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, + .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .sse2, null, null, null }, + .src_constraints = .{ + .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, + .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .call_frame = .{ .alignment = .@"16" }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, + .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, + .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__multf3" } } }, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._dqa, .mov, .tmp2x, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, + .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .sse, null, null, null }, + .src_constraints = .{ + .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, + .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .call_frame = .{ .alignment = .@"16" }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, + .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, + .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__multf3" } } }, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", ._ps, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._ps, .mova, .tmp2x, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, + .{ ._, ._ps, .mova, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + } }) catch |err| switch (err) { + error.SelectFailed => return cg.fail("failed to select {s} {} {} {}", .{ + @tagName(air_tag), + ty.fmt(pt), + ops[0].tracking(cg), + ops[1].tracking(cg), + }), + else => |e| return e, + }; + try res[0].finish(inst, &.{ bin_op.lhs, bin_op.rhs }, &ops, cg); + }, + .mul_safe => unreachable, + .div_float, .div_float_optimized, .div_exact, .div_exact_optimized => |air_tag| if (use_old) try cg.airMulDivBinOp(inst, switch (air_tag) { + else => unreachable, + .div_float, .div_float_optimized => .div_float, + .div_exact, .div_exact_optimized => .div_exact, + }) else { + const bin_op = air_datas[@intFromEnum(inst)].bin_op; + const ty = cg.typeOf(bin_op.lhs); + var ops = try cg.tempsFromOperands(inst, .{ bin_op.lhs, bin_op.rhs }); + var res: [1]Temp = undefined; + (if (cg.floatBits(ty.scalarType(zcu))) |_| cg.select(&res, &.{ty}, &ops, comptime &.{ .{ + .required_features = .{ .f16c, null, null, null }, + .src_constraints = .{ + .{ .scalar_float = .{ .of = .word, .is = .word } }, + .{ .scalar_float = .{ .of = .word, .is = .word } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_sse, .to_sse, .none } }, + }, + .extra_temps = .{ + .{ .type = .f32, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .sse } } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, + .each = .{ .once = &.{ + .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ }, + .{ ._, .v_ps, .cvtph2, .tmp0x, .src1q, ._, ._ }, + .{ ._, .v_ss, .div, .dst0x, .dst0x, .tmp0d, ._ }, + .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ }, + } }, + }, .{ + .required_features = .{ .sse, null, null, null }, + .src_constraints = .{ + .{ .scalar_float = .{ .of = .word, .is = .word } }, + .{ .scalar_float = .{ .of = .word, .is = .word } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .{ .to_reg = .xmm0 }, .{ .to_reg = .xmm1 }, .none } }, + }, + .call_frame = .{ .alignment = .@"16" }, + .extra_temps = .{ + .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divhf3" } } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, + .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, + .each = .{ .once = &.{ + .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .f16c, null, null, null }, + .src_constraints = .{ + .{ .scalar_float = .{ .of = .qword, .is = .word } }, + .{ .scalar_float = .{ .of = .qword, .is = .word } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .mem, .mem, .none } }, + .{ .src = .{ .to_sse, .mem, .none } }, + .{ .src = .{ .mem, .to_sse, .none } }, + .{ .src = .{ .to_sse, .to_sse, .none } }, + }, + .extra_temps = .{ + .{ .type = .vector_4_f32, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .sse } } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, + .each = .{ .once = &.{ + .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ }, + .{ ._, .v_ps, .cvtph2, .tmp0x, .src1q, ._, ._ }, + .{ ._, .v_ps, .div, .dst0x, .dst0x, .tmp0x, ._ }, + .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ }, + } }, + }, .{ + .required_features = .{ .f16c, null, null, null }, + .src_constraints = .{ + .{ .scalar_float = .{ .of = .xword, .is = .word } }, + .{ .scalar_float = .{ .of = .xword, .is = .word } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .mem, .mem, .none } }, + .{ .src = .{ .to_sse, .mem, .none } }, + .{ .src = .{ .mem, .to_sse, .none } }, + .{ .src = .{ .to_sse, .to_sse, .none } }, + }, + .extra_temps = .{ + .{ .type = .vector_8_f32, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .sse } } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, + .each = .{ .once = &.{ + .{ ._, .v_ps, .cvtph2, .dst0y, .src0x, ._, ._ }, + .{ ._, .v_ps, .cvtph2, .tmp0y, .src1x, ._, ._ }, + .{ ._, .v_ps, .div, .dst0y, .dst0y, .tmp0y, ._ }, + .{ ._, .v_, .cvtps2ph, .dst0x, .dst0y, .rm(.{}), ._ }, + } }, + }, .{ + .required_features = .{ .f16c, null, null, null }, + .src_constraints = .{ + .{ .multiple_scalar_float = .{ .of = .xword, .is = .word } }, + .{ .multiple_scalar_float = .{ .of = .xword, .is = .word } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } }, + .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", .v_ps, .cvtph2, .tmp1y, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, .v_ps, .cvtph2, .tmp2y, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, .v_ps, .div, .tmp1y, .tmp1y, .tmp2y, ._ }, + .{ ._, .v_, .cvtps2ph, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1y, .rm(.{}), ._ }, + .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .avx, null, null, null }, + .src_constraints = .{ + .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, + .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .call_frame = .{ .alignment = .@"16" }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, + .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, + .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divhf3" } } }, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", .vp_, .xor, .tmp2x, .tmp2x, .tmp2x, ._ }, + .{ ._, .vp_w, .insr, .tmp1x, .tmp2x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0) }, + .{ ._, .vp_w, .insr, .tmp2x, .tmp2x, .memia(.src1w, .tmp0, .add_unaligned_size), .ui(0) }, + .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, + .{ ._, .vp_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1x, .ui(0), ._ }, + .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .sse4_1, null, null, null }, + .src_constraints = .{ + .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, + .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .call_frame = .{ .alignment = .@"16" }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, + .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, + .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divhf3" } } }, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ }, + .{ ._, .p_, .xor, .tmp2x, .tmp2x, ._, ._ }, + .{ ._, .p_w, .insr, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0), ._ }, + .{ ._, .p_w, .insr, .tmp2x, .memia(.src1w, .tmp0, .add_unaligned_size), .ui(0), ._ }, + .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, + .{ ._, .p_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1x, .ui(0), ._ }, + .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .sse2, null, null, null }, + .src_constraints = .{ + .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, + .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .call_frame = .{ .alignment = .@"16" }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, + .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, + .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divhf3" } } }, + .{ .type = .f16, .kind = .{ .reg = .ax } }, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ }, + .{ ._, .p_, .xor, .tmp2x, .tmp2x, ._, ._ }, + .{ ._, .p_w, .insr, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0), ._ }, + .{ ._, .p_w, .insr, .tmp2x, .memia(.src1w, .tmp0, .add_unaligned_size), .ui(0), ._ }, + .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, + .{ ._, .p_w, .extr, .tmp4d, .tmp1x, .ui(0), ._ }, + .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp4w, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .sse, null, null, null }, + .src_constraints = .{ + .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, + .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .call_frame = .{ .alignment = .@"16" }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .f16, .kind = .{ .reg = .ax } }, + .{ .type = .f32, .kind = .mem }, + .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, + .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, + .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divhf3" } } }, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._, .mov, .mem(.tmp2d), .tmp1d, ._, ._ }, + .{ ._, ._ss, .mov, .tmp3x, .mem(.tmp2d), ._, ._ }, + .{ ._, ._, .movzx, .tmp1d, .memia(.src1w, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._, .mov, .mem(.tmp2d), .tmp1d, ._, ._ }, + .{ ._, ._ss, .mov, .tmp4x, .mem(.tmp2d), ._, ._ }, + .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, + .{ ._, ._ss, .mov, .mem(.tmp2d), .tmp3x, ._, ._ }, + .{ ._, ._, .mov, .tmp1d, .mem(.tmp2d), ._, ._ }, + .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .avx, null, null, null }, + .src_constraints = .{ + .{ .scalar_float = .{ .of = .dword, .is = .dword } }, + .{ .scalar_float = .{ .of = .dword, .is = .dword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_sse, .mem, .none } }, + .{ .src = .{ .to_sse, .to_sse, .none } }, + }, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, + .each = .{ .once = &.{ + .{ ._, .v_ss, .div, .dst0x, .src0x, .src1d, ._ }, + } }, + }, .{ + .required_features = .{ .sse, null, null, null }, + .src_constraints = .{ + .{ .scalar_float = .{ .of = .dword, .is = .dword } }, + .{ .scalar_float = .{ .of = .dword, .is = .dword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mut_sse, .mem, .none } }, + .{ .src = .{ .to_mut_sse, .to_sse, .none } }, + }, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, + .each = .{ .once = &.{ + .{ ._, ._ss, .div, .dst0x, .src1d, ._, ._ }, + } }, + }, .{ + .required_features = .{ .avx, null, null, null }, + .src_constraints = .{ + .{ .scalar_float = .{ .of = .xword, .is = .dword } }, + .{ .scalar_float = .{ .of = .xword, .is = .dword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_sse, .mem, .none } }, + .{ .src = .{ .to_sse, .to_sse, .none } }, + }, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, + .each = .{ .once = &.{ + .{ ._, .v_ps, .div, .dst0x, .src0x, .src1x, ._ }, + } }, + }, .{ + .required_features = .{ .sse, null, null, null }, + .src_constraints = .{ + .{ .scalar_float = .{ .of = .xword, .is = .dword } }, + .{ .scalar_float = .{ .of = .xword, .is = .dword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mut_sse, .mem, .none } }, + .{ .src = .{ .to_mut_sse, .to_sse, .none } }, + }, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, + .each = .{ .once = &.{ + .{ ._, ._ps, .div, .dst0x, .src1x, ._, ._ }, + } }, + }, .{ + .required_features = .{ .avx, null, null, null }, + .src_constraints = .{ + .{ .scalar_float = .{ .of = .yword, .is = .dword } }, + .{ .scalar_float = .{ .of = .yword, .is = .dword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_sse, .mem, .none } }, + .{ .src = .{ .to_sse, .to_sse, .none } }, + }, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, + .each = .{ .once = &.{ + .{ ._, .v_ps, .div, .dst0y, .src0y, .src1y, ._ }, + } }, + }, .{ + .required_features = .{ .avx, null, null, null }, + .src_constraints = .{ + .{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } }, + .{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", .v_ps, .mova, .tmp1y, .memia(.src0y, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, .v_ps, .div, .tmp1y, .tmp1y, .memia(.src1y, .tmp0, .add_unaligned_size), ._ }, + .{ ._, .v_ps, .mova, .memia(.dst0y, .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .sse, null, null, null }, + .src_constraints = .{ + .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, + .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", ._ps, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._ps, .div, .tmp1x, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._ps, .mova, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .avx, null, null, null }, + .src_constraints = .{ + .{ .scalar_float = .{ .of = .qword, .is = .qword } }, + .{ .scalar_float = .{ .of = .qword, .is = .qword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_sse, .mem, .none } }, + .{ .src = .{ .to_sse, .to_sse, .none } }, + }, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, + .each = .{ .once = &.{ + .{ ._, .v_sd, .div, .dst0x, .src0x, .src1q, ._ }, + } }, + }, .{ + .required_features = .{ .sse2, null, null, null }, + .src_constraints = .{ + .{ .scalar_float = .{ .of = .qword, .is = .qword } }, + .{ .scalar_float = .{ .of = .qword, .is = .qword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mut_sse, .mem, .none } }, + .{ .src = .{ .to_mut_sse, .to_sse, .none } }, + }, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, + .each = .{ .once = &.{ + .{ ._, ._sd, .div, .dst0x, .src1q, ._, ._ }, + } }, + }, .{ + .required_features = .{ .x87, null, null, null }, + .src_constraints = .{ + .{ .scalar_float = .{ .of = .qword, .is = .qword } }, + .{ .scalar_float = .{ .of = .qword, .is = .qword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .mem, .mem, .none } }, + }, + .extra_temps = .{ + .{ .type = .f64, .kind = .{ .reg = .st6 } }, + .{ .type = .f64, .kind = .{ .reg = .st7 } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .each = .{ .once = &.{ + .{ ._, .f_, .ld, .src0q, ._, ._, ._ }, + .{ ._, .f_, .div, .src1q, ._, ._, ._ }, + .{ ._, .f_p, .st, .dst0q, ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .avx, null, null, null }, + .src_constraints = .{ + .{ .scalar_float = .{ .of = .xword, .is = .qword } }, + .{ .scalar_float = .{ .of = .xword, .is = .qword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_sse, .mem, .none } }, + .{ .src = .{ .to_sse, .to_sse, .none } }, + }, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, + .each = .{ .once = &.{ + .{ ._, .v_pd, .div, .dst0x, .src0x, .src1x, ._ }, + } }, + }, .{ + .required_features = .{ .sse2, null, null, null }, + .src_constraints = .{ + .{ .scalar_float = .{ .of = .xword, .is = .qword } }, + .{ .scalar_float = .{ .of = .xword, .is = .qword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mut_sse, .mem, .none } }, + .{ .src = .{ .to_mut_sse, .to_sse, .none } }, + }, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, + .each = .{ .once = &.{ + .{ ._, ._pd, .div, .dst0x, .src1x, ._, ._ }, + } }, + }, .{ + .required_features = .{ .avx, null, null, null }, + .src_constraints = .{ + .{ .scalar_float = .{ .of = .yword, .is = .qword } }, + .{ .scalar_float = .{ .of = .yword, .is = .qword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_sse, .mem, .none } }, + .{ .src = .{ .to_sse, .to_sse, .none } }, + }, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, + .each = .{ .once = &.{ + .{ ._, .v_pd, .div, .dst0y, .src0y, .src1y, ._ }, + } }, + }, .{ + .required_features = .{ .avx, null, null, null }, + .src_constraints = .{ + .{ .multiple_scalar_float = .{ .of = .yword, .is = .qword } }, + .{ .multiple_scalar_float = .{ .of = .yword, .is = .qword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .vector_4_f64, .kind = .{ .rc = .sse } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", .v_pd, .mova, .tmp1y, .memia(.src0y, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, .v_pd, .div, .tmp1y, .tmp1y, .memia(.src1y, .tmp0, .add_unaligned_size), ._ }, + .{ ._, .v_pd, .mova, .memia(.dst0y, .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .sse2, null, null, null }, + .src_constraints = .{ + .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }, + .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", ._pd, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._pd, .div, .tmp1x, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._pd, .mova, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .x87, null, null, null }, + .src_constraints = .{ + .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, + .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .f64, .kind = .{ .reg = .st6 } }, + .{ .type = .f64, .kind = .{ .reg = .st7 } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", .f_, .ld, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._, ._ }, + .{ ._, .f_, .div, .memia(.src1q, .tmp0, .add_unaligned_size), ._, ._, ._ }, + .{ ._, .f_p, .st, .memia(.dst0q, .tmp0, .add_unaligned_size), ._, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .x87, null, null, null }, + .src_constraints = .{ + .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, + .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .mem, .mem, .none } }, + }, + .extra_temps = .{ + .{ .type = .f80, .kind = .{ .reg = .st6 } }, + .{ .type = .f80, .kind = .{ .reg = .st7 } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .{ .rc = .x87 }, .unused }, + .each = .{ .once = &.{ + .{ ._, .f_, .ld, .src0t, ._, ._, ._ }, + .{ ._, .f_, .ld, .src1t, ._, ._, ._ }, + .{ ._, .f_p, .div, ._, ._, ._, ._ }, + .{ ._, .f_p, .st, .dst0t, ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .x87, null, null, null }, + .src_constraints = .{ + .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, + .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_x87, .mem, .none }, .commute = .{ 0, 1 } }, + }, + .extra_temps = .{ + .{ .type = .f80, .kind = .{ .reg = .st7 } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .{ .rc = .x87 }, .unused }, + .each = .{ .once = &.{ + .{ ._, .f_, .ld, .src0t, ._, ._, ._ }, + .{ ._, .f_, .divr, .tmp0t, .src1t, ._, ._ }, + .{ ._, .f_p, .st, .dst0t, ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .x87, null, null, null }, + .src_constraints = .{ + .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, + .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .mem, .to_x87, .none } }, + .{ .src = .{ .to_x87, .to_x87, .none } }, + }, + .extra_temps = .{ + .{ .type = .f80, .kind = .{ .reg = .st7 } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .{ .rc = .x87 }, .unused }, + .each = .{ .once = &.{ + .{ ._, .f_, .ld, .src0t, ._, ._, ._ }, + .{ ._, .f_, .div, .tmp0t, .src1t, ._, ._ }, + .{ ._, .f_p, .st, .dst0t, ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .x87, null, null, null }, + .src_constraints = .{ + .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, + .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .f80, .kind = .{ .reg = .st6 } }, + .{ .type = .f80, .kind = .{ .reg = .st7 } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", .f_, .ld, .memia(.src0t, .tmp0, .add_unaligned_size), ._, ._, ._ }, + .{ ._, .f_, .ld, .memia(.src1t, .tmp0, .add_unaligned_size), ._, ._, ._ }, + .{ ._, .f_p, .div, ._, ._, ._, ._ }, + .{ ._, .f_p, .st, .memia(.dst0t, .tmp0, .add_unaligned_size), ._, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .sse, null, null, null }, + .src_constraints = .{ + .{ .scalar_float = .{ .of = .xword, .is = .xword } }, + .{ .scalar_float = .{ .of = .xword, .is = .xword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .{ .to_reg = .xmm0 }, .{ .to_reg = .xmm1 }, .none } }, + }, + .call_frame = .{ .alignment = .@"16" }, + .extra_temps = .{ + .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divtf3" } } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, + .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, + .each = .{ .once = &.{ + .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .avx, null, null, null }, + .src_constraints = .{ + .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, + .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .call_frame = .{ .alignment = .@"16" }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, + .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, + .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divtf3" } } }, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", .v_dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, .v_dqa, .mov, .tmp2x, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, + .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .sse2, null, null, null }, + .src_constraints = .{ + .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, + .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .call_frame = .{ .alignment = .@"16" }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, + .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, + .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divtf3" } } }, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._dqa, .mov, .tmp2x, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, + .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .sse, null, null, null }, + .src_constraints = .{ + .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, + .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .call_frame = .{ .alignment = .@"16" }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, + .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, + .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divtf3" } } }, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", ._ps, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._ps, .mova, .tmp2x, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, + .{ ._, ._ps, .mova, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + } }) else err: { + assert(air_tag == .div_exact); + res[0] = ops[0].divTruncInts(&ops[1], cg) catch |err| break :err err; + }) catch |err| switch (err) { + error.SelectFailed => return cg.fail("failed to select {s} {} {} {}", .{ + @tagName(air_tag), + ty.fmt(pt), + ops[0].tracking(cg), + ops[1].tracking(cg), + }), + else => |e| return e, + }; + try res[0].finish(inst, &.{ bin_op.lhs, bin_op.rhs }, &ops, cg); + }, + .div_trunc => |air_tag| if (use_old) try cg.airMulDivBinOp(inst, air_tag) else { + const bin_op = air_datas[@intFromEnum(inst)].bin_op; + const ty = cg.typeOf(bin_op.lhs); + var ops = try cg.tempsFromOperands(inst, .{ bin_op.lhs, bin_op.rhs }); + var res: [1]Temp = undefined; + (if (cg.floatBits(ty.scalarType(zcu))) |_| cg.select(&res, &.{ty}, &ops, comptime &.{ .{ + .required_features = .{ .f16c, null, null, null }, + .src_constraints = .{ + .{ .scalar_float = .{ .of = .word, .is = .word } }, + .{ .scalar_float = .{ .of = .word, .is = .word } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_sse, .to_sse, .none } }, + }, + .extra_temps = .{ + .{ .type = .f32, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .sse } } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, + .each = .{ .once = &.{ + .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ }, + .{ ._, .v_ps, .cvtph2, .tmp0x, .src1q, ._, ._ }, + .{ ._, .v_ss, .div, .dst0x, .dst0x, .tmp0d, ._ }, + .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ }, + .{ ._, .v_ps, .cvtph2, .dst0x, .dst0q, ._, ._ }, + .{ ._, .v_ss, .round, .dst0x, .dst0x, .dst0d, .rm(.{ .direction = .zero, .precision = .inexact }) }, + .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ }, + } }, + }, .{ + .required_features = .{ .sse, null, null, null }, + .src_constraints = .{ + .{ .scalar_float = .{ .of = .word, .is = .word } }, + .{ .scalar_float = .{ .of = .word, .is = .word } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .{ .to_reg = .xmm0 }, .{ .to_reg = .xmm1 }, .none } }, + }, + .call_frame = .{ .alignment = .@"16" }, + .extra_temps = .{ + .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divhf3" } } }, + .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__trunch" } } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, + .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, + .each = .{ .once = &.{ + .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, + .{ ._, ._, .call, .tmp1d, ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .f16c, null, null, null }, + .src_constraints = .{ + .{ .scalar_float = .{ .of = .qword, .is = .word } }, + .{ .scalar_float = .{ .of = .qword, .is = .word } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .mem, .mem, .none } }, + .{ .src = .{ .to_sse, .mem, .none } }, + .{ .src = .{ .mem, .to_sse, .none } }, + .{ .src = .{ .to_sse, .to_sse, .none } }, + }, + .extra_temps = .{ + .{ .type = .vector_4_f32, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .sse } } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, + .each = .{ .once = &.{ + .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ }, + .{ ._, .v_ps, .cvtph2, .tmp0x, .src1q, ._, ._ }, + .{ ._, .v_ps, .div, .dst0x, .dst0x, .tmp0x, ._ }, + .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ }, + .{ ._, .v_ps, .cvtph2, .dst0x, .dst0q, ._, ._ }, + .{ ._, .v_ps, .round, .dst0x, .dst0x, .rm(.{ .direction = .zero, .precision = .inexact }), ._ }, + .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ }, + } }, + }, .{ + .required_features = .{ .f16c, null, null, null }, + .src_constraints = .{ + .{ .scalar_float = .{ .of = .xword, .is = .word } }, + .{ .scalar_float = .{ .of = .xword, .is = .word } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .mem, .mem, .none } }, + .{ .src = .{ .to_sse, .mem, .none } }, + .{ .src = .{ .mem, .to_sse, .none } }, + .{ .src = .{ .to_sse, .to_sse, .none } }, + }, + .extra_temps = .{ + .{ .type = .vector_8_f32, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .sse } } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, + .each = .{ .once = &.{ + .{ ._, .v_ps, .cvtph2, .dst0y, .src0x, ._, ._ }, + .{ ._, .v_ps, .cvtph2, .tmp0y, .src1x, ._, ._ }, + .{ ._, .v_ps, .div, .dst0y, .dst0y, .tmp0y, ._ }, + .{ ._, .v_, .cvtps2ph, .dst0x, .dst0y, .rm(.{}), ._ }, + .{ ._, .v_ps, .cvtph2, .dst0y, .dst0x, ._, ._ }, + .{ ._, .v_ps, .round, .dst0y, .dst0y, .rm(.{ .direction = .zero, .precision = .inexact }), ._ }, + .{ ._, .v_, .cvtps2ph, .dst0x, .dst0y, .rm(.{}), ._ }, + } }, + }, .{ + .required_features = .{ .f16c, null, null, null }, + .src_constraints = .{ + .{ .multiple_scalar_float = .{ .of = .xword, .is = .word } }, + .{ .multiple_scalar_float = .{ .of = .xword, .is = .word } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } }, + .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", .v_ps, .cvtph2, .tmp1y, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, .v_ps, .cvtph2, .tmp2y, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, .v_ps, .div, .tmp1y, .tmp1y, .tmp2y, ._ }, + .{ ._, .v_, .cvtps2ph, .tmp1x, .tmp1y, .rm(.{}), ._ }, + .{ ._, .v_ps, .cvtph2, .tmp1y, .tmp1x, ._, ._ }, + .{ ._, .v_ps, .round, .tmp1y, .tmp1y, .rm(.{ .direction = .zero, .precision = .inexact }), ._ }, + .{ ._, .v_, .cvtps2ph, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1y, .rm(.{}), ._ }, + .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .avx, null, null, null }, + .src_constraints = .{ + .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, + .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .call_frame = .{ .alignment = .@"16" }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, + .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, + .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divhf3" } } }, + .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__trunch" } } }, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", .vp_, .xor, .tmp2x, .tmp2x, .tmp2x, ._ }, + .{ ._, .vp_w, .insr, .tmp1x, .tmp2x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0) }, + .{ ._, .vp_w, .insr, .tmp2x, .tmp2x, .memia(.src1w, .tmp0, .add_unaligned_size), .ui(0) }, + .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, + .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, + .{ ._, .vp_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1x, .ui(0), ._ }, + .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .sse4_1, null, null, null }, + .src_constraints = .{ + .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, + .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .call_frame = .{ .alignment = .@"16" }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, + .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, + .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divhf3" } } }, + .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__trunch" } } }, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ }, + .{ ._, .p_, .xor, .tmp2x, .tmp2x, ._, ._ }, + .{ ._, .p_w, .insr, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0), ._ }, + .{ ._, .p_w, .insr, .tmp2x, .memia(.src1w, .tmp0, .add_unaligned_size), .ui(0), ._ }, + .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, + .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, + .{ ._, .p_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1x, .ui(0), ._ }, + .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .sse2, null, null, null }, + .src_constraints = .{ + .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, + .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .call_frame = .{ .alignment = .@"16" }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, + .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, + .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divhf3" } } }, + .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__trunch" } } }, + .{ .type = .f16, .kind = .{ .reg = .ax } }, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ }, + .{ ._, .p_, .xor, .tmp2x, .tmp2x, ._, ._ }, + .{ ._, .p_w, .insr, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0), ._ }, + .{ ._, .p_w, .insr, .tmp2x, .memia(.src1w, .tmp0, .add_unaligned_size), .ui(0), ._ }, + .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, + .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, + .{ ._, .p_w, .extr, .tmp5d, .tmp1x, .ui(0), ._ }, + .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp5w, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .sse, null, null, null }, + .src_constraints = .{ + .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, + .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .call_frame = .{ .alignment = .@"16" }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .f16, .kind = .{ .reg = .ax } }, + .{ .type = .f32, .kind = .mem }, + .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, + .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, + .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divhf3" } } }, + .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__trunch" } } }, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._, .mov, .mem(.tmp2d), .tmp1d, ._, ._ }, + .{ ._, ._ss, .mov, .tmp3x, .mem(.tmp2d), ._, ._ }, + .{ ._, ._, .movzx, .tmp1d, .memia(.src1w, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._, .mov, .mem(.tmp2d), .tmp1d, ._, ._ }, + .{ ._, ._ss, .mov, .tmp4x, .mem(.tmp2d), ._, ._ }, + .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, + .{ ._, ._, .call, .tmp6d, ._, ._, ._ }, + .{ ._, ._ss, .mov, .mem(.tmp2d), .tmp3x, ._, ._ }, + .{ ._, ._, .mov, .tmp1d, .mem(.tmp2d), ._, ._ }, + .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .avx, null, null, null }, + .src_constraints = .{ + .{ .scalar_float = .{ .of = .dword, .is = .dword } }, + .{ .scalar_float = .{ .of = .dword, .is = .dword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_sse, .mem, .none } }, + .{ .src = .{ .to_sse, .to_sse, .none } }, + }, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, + .each = .{ .once = &.{ + .{ ._, .v_ss, .div, .dst0x, .src0x, .src1d, ._ }, + .{ ._, .v_ss, .round, .dst0x, .dst0x, .dst0d, .rm(.{ .direction = .zero, .precision = .inexact }) }, + } }, + }, .{ + .required_features = .{ .sse4_1, null, null, null }, + .src_constraints = .{ + .{ .scalar_float = .{ .of = .dword, .is = .dword } }, + .{ .scalar_float = .{ .of = .dword, .is = .dword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mut_sse, .mem, .none } }, + .{ .src = .{ .to_mut_sse, .to_sse, .none } }, + }, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, + .each = .{ .once = &.{ + .{ ._, ._ss, .div, .dst0x, .src1d, ._, ._ }, + .{ ._, ._ss, .round, .dst0x, .dst0d, .rm(.{ .direction = .zero, .precision = .inexact }), ._ }, + } }, + }, .{ + .required_features = .{ .sse, null, null, null }, + .src_constraints = .{ + .{ .scalar_float = .{ .of = .dword, .is = .dword } }, + .{ .scalar_float = .{ .of = .dword, .is = .dword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .{ .to_reg = .xmm0 }, .to_mem, .none } }, + }, + .call_frame = .{ .alignment = .@"16" }, + .extra_temps = .{ + .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "truncf" } } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, + .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, + .each = .{ .once = &.{ + .{ ._, ._ss, .div, .dst0x, .src1d, ._, ._ }, + .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .avx, null, null, null }, + .src_constraints = .{ + .{ .scalar_float = .{ .of = .xword, .is = .dword } }, + .{ .scalar_float = .{ .of = .xword, .is = .dword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_sse, .mem, .none } }, + .{ .src = .{ .to_sse, .to_sse, .none } }, + }, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, + .each = .{ .once = &.{ + .{ ._, .v_ps, .div, .dst0x, .src0x, .src1x, ._ }, + .{ ._, .v_ps, .round, .dst0x, .dst0x, .rm(.{ .direction = .zero, .precision = .inexact }), ._ }, + } }, + }, .{ + .required_features = .{ .sse4_1, null, null, null }, + .src_constraints = .{ + .{ .scalar_float = .{ .of = .xword, .is = .dword } }, + .{ .scalar_float = .{ .of = .xword, .is = .dword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mut_sse, .mem, .none } }, + .{ .src = .{ .to_mut_sse, .to_sse, .none } }, + }, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, + .each = .{ .once = &.{ + .{ ._, ._ps, .div, .dst0x, .src1x, ._, ._ }, + .{ ._, ._ps, .round, .dst0x, .dst0x, .rm(.{ .direction = .zero, .precision = .inexact }), ._ }, + } }, + }, .{ + .required_features = .{ .sse, null, null, null }, + .src_constraints = .{ + .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, + .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .call_frame = .{ .alignment = .@"16" }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, + .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "truncf" } } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", ._ss, .mov, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._ss, .div, .tmp1x, .memia(.src1d, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, + .{ ._, ._ss, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .avx, null, null, null }, + .src_constraints = .{ + .{ .scalar_float = .{ .of = .yword, .is = .dword } }, + .{ .scalar_float = .{ .of = .yword, .is = .dword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_sse, .mem, .none } }, + .{ .src = .{ .to_sse, .to_sse, .none } }, + }, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, + .each = .{ .once = &.{ + .{ ._, .v_ps, .div, .dst0y, .src0y, .src1y, ._ }, + .{ ._, .v_ps, .round, .dst0y, .dst0y, .rm(.{ .direction = .zero, .precision = .inexact }), ._ }, + } }, + }, .{ + .required_features = .{ .avx, null, null, null }, + .src_constraints = .{ + .{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } }, + .{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", .v_ps, .mova, .tmp1y, .memia(.src0y, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, .v_ps, .div, .tmp1y, .tmp1y, .memia(.src1y, .tmp0, .add_unaligned_size), ._ }, + .{ ._, .v_ps, .round, .tmp1y, .tmp1y, .rm(.{ .direction = .zero, .precision = .inexact }), ._ }, + .{ ._, .v_ps, .mova, .memia(.dst0y, .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .sse4_1, null, null, null }, + .src_constraints = .{ + .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, + .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", ._ps, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._ps, .div, .tmp1x, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._ps, .round, .tmp1x, .tmp1x, .rm(.{ .direction = .zero, .precision = .inexact }), ._ }, + .{ ._, ._ps, .mova, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .avx, null, null, null }, + .src_constraints = .{ + .{ .scalar_float = .{ .of = .qword, .is = .qword } }, + .{ .scalar_float = .{ .of = .qword, .is = .qword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_sse, .mem, .none } }, + .{ .src = .{ .to_sse, .to_sse, .none } }, + }, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, + .each = .{ .once = &.{ + .{ ._, .v_sd, .div, .dst0x, .src0x, .src1q, ._ }, + .{ ._, .v_sd, .round, .dst0x, .dst0x, .dst0q, .rm(.{ .direction = .zero, .precision = .inexact }) }, + } }, + }, .{ + .required_features = .{ .sse4_1, null, null, null }, + .src_constraints = .{ + .{ .scalar_float = .{ .of = .qword, .is = .qword } }, + .{ .scalar_float = .{ .of = .qword, .is = .qword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mut_sse, .mem, .none } }, + .{ .src = .{ .to_mut_sse, .to_sse, .none } }, + }, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, + .each = .{ .once = &.{ + .{ ._, ._sd, .div, .dst0x, .src1q, ._, ._ }, + .{ ._, ._sd, .round, .dst0x, .dst0q, .rm(.{ .direction = .zero, .precision = .inexact }), ._ }, + } }, + }, .{ + .required_features = .{ .sse2, null, null, null }, + .src_constraints = .{ + .{ .scalar_float = .{ .of = .qword, .is = .qword } }, + .{ .scalar_float = .{ .of = .qword, .is = .qword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .{ .to_reg = .xmm0 }, .to_mem, .none } }, + }, + .call_frame = .{ .alignment = .@"16" }, + .extra_temps = .{ + .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "trunc" } } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, + .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, + .each = .{ .once = &.{ + .{ ._, ._sd, .div, .dst0x, .src1q, ._, ._ }, + .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .sse, null, null, null }, + .src_constraints = .{ + .{ .scalar_float = .{ .of = .qword, .is = .qword } }, + .{ .scalar_float = .{ .of = .qword, .is = .qword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .{ .to_reg = .xmm0 }, .{ .to_reg = .xmm1 }, .none } }, + }, + .call_frame = .{ .alignment = .@"16" }, + .extra_temps = .{ + .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divdf3" } } }, + .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "trunc" } } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, + .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, + .each = .{ .once = &.{ + .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, + .{ ._, ._, .call, .tmp1d, ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .avx, null, null, null }, + .src_constraints = .{ + .{ .scalar_float = .{ .of = .xword, .is = .qword } }, + .{ .scalar_float = .{ .of = .xword, .is = .qword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_sse, .mem, .none } }, + .{ .src = .{ .to_sse, .to_sse, .none } }, + }, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, + .each = .{ .once = &.{ + .{ ._, .v_pd, .div, .dst0x, .src0x, .src1x, ._ }, + .{ ._, .v_pd, .round, .dst0x, .dst0x, .rm(.{ .direction = .zero, .precision = .inexact }), ._ }, + } }, + }, .{ + .required_features = .{ .sse4_1, null, null, null }, + .src_constraints = .{ + .{ .scalar_float = .{ .of = .xword, .is = .qword } }, + .{ .scalar_float = .{ .of = .xword, .is = .qword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mut_sse, .mem, .none } }, + .{ .src = .{ .to_mut_sse, .to_sse, .none } }, + }, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, + .each = .{ .once = &.{ + .{ ._, ._pd, .div, .dst0x, .src1x, ._, ._ }, + .{ ._, ._pd, .round, .dst0x, .dst0x, .rm(.{ .direction = .zero, .precision = .inexact }), ._ }, + } }, + }, .{ + .required_features = .{ .avx, null, null, null }, + .src_constraints = .{ + .{ .scalar_float = .{ .of = .yword, .is = .qword } }, + .{ .scalar_float = .{ .of = .yword, .is = .qword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_sse, .mem, .none } }, + .{ .src = .{ .to_sse, .to_sse, .none } }, + }, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, + .each = .{ .once = &.{ + .{ ._, .v_pd, .div, .dst0y, .src0y, .src1y, ._ }, + .{ ._, .v_pd, .round, .dst0y, .dst0y, .rm(.{ .direction = .zero, .precision = .inexact }), ._ }, + } }, + }, .{ + .required_features = .{ .avx, null, null, null }, + .src_constraints = .{ + .{ .multiple_scalar_float = .{ .of = .yword, .is = .qword } }, + .{ .multiple_scalar_float = .{ .of = .yword, .is = .qword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .vector_4_f64, .kind = .{ .rc = .sse } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", .v_pd, .mova, .tmp1y, .memia(.src0y, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, .v_pd, .div, .tmp1y, .tmp1y, .memia(.src1y, .tmp0, .add_unaligned_size), ._ }, + .{ ._, .v_pd, .round, .tmp1y, .tmp1y, .rm(.{ .direction = .zero, .precision = .inexact }), ._ }, + .{ ._, .v_pd, .mova, .memia(.dst0y, .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .sse4_1, null, null, null }, + .src_constraints = .{ + .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }, + .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", ._pd, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._pd, .div, .tmp1x, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._pd, .round, .tmp1x, .tmp1x, .rm(.{ .direction = .zero, .precision = .inexact }), ._ }, + .{ ._, ._pd, .mova, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .sse2, null, null, null }, + .src_constraints = .{ + .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, + .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .call_frame = .{ .alignment = .@"16" }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, + .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "trunc" } } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", ._sd, .mov, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._sd, .div, .tmp1x, .memia(.src1q, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, + .{ ._, ._sd, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .sse, null, null, null }, + .src_constraints = .{ + .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, + .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .call_frame = .{ .alignment = .@"16" }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, + .{ .type = .f64, .kind = .{ .reg = .xmm1 } }, + .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divdf3" } } }, + .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "trunc" } } }, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", ._ps, .xor, .tmp1x, .tmp1x, ._, ._ }, + .{ ._, ._ps, .xor, .tmp2x, .tmp2x, ._, ._ }, + .{ ._, ._ps, .movl, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._ps, .movl, .tmp2x, .memia(.src1q, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, + .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, + .{ ._, ._ps, .movl, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .x87, null, null, null }, + .src_constraints = .{ + .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, + .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .call_frame = .{ .size = 16, .alignment = .@"16" }, + .extra_temps = .{ + .{ .type = .f80, .kind = .{ .reg = .st6 } }, + .{ .type = .f80, .kind = .{ .reg = .st7 } }, + .{ .type = .f80, .kind = .{ .frame = .call_frame } }, + .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__truncx" } } }, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .{ .reg = .st0 }, .unused }, + .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, + .each = .{ .once = &.{ + .{ ._, .f_, .ld, .src0t, ._, ._, ._ }, + .{ ._, .f_, .ld, .src1t, ._, ._, ._ }, + .{ ._, .f_p, .div, ._, ._, ._, ._ }, + .{ ._, .f_p, .st, .mem(.tmp2t), ._, ._, ._ }, + .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .x87, null, null, null }, + .src_constraints = .{ + .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, + .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .call_frame = .{ .size = 16, .alignment = .@"16" }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .f80, .kind = .{ .reg = .st6 } }, + .{ .type = .f80, .kind = .{ .reg = .st7 } }, + .{ .type = .f80, .kind = .{ .frame = .call_frame } }, + .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__truncx" } } }, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", .f_, .ld, .memia(.src0t, .tmp0, .add_unaligned_size), ._, ._, ._ }, + .{ ._, .f_, .ld, .memia(.src1t, .tmp0, .add_unaligned_size), ._, ._, ._ }, + .{ ._, .f_p, .div, ._, ._, ._, ._ }, + .{ ._, .f_p, .st, .mem(.tmp3t), ._, ._, ._ }, + .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, + .{ .pseudo, .f_cstp, .de, ._, ._, ._, ._ }, + .{ ._, .f_p, .st, .memia(.dst0t, .tmp0, .add_unaligned_size), ._, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .sse, null, null, null }, + .src_constraints = .{ + .{ .scalar_float = .{ .of = .xword, .is = .xword } }, + .{ .scalar_float = .{ .of = .xword, .is = .xword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .{ .to_reg = .xmm0 }, .{ .to_reg = .xmm1 }, .none } }, + }, + .call_frame = .{ .alignment = .@"16" }, + .extra_temps = .{ + .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divtf3" } } }, + .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "truncq" } } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, + .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, + .each = .{ .once = &.{ + .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, + .{ ._, ._, .call, .tmp1d, ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .avx, null, null, null }, + .src_constraints = .{ + .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, + .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .call_frame = .{ .alignment = .@"16" }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, + .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, + .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divtf3" } } }, + .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "truncq" } } }, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", .v_dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, .v_dqa, .mov, .tmp2x, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, + .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, + .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .sse2, null, null, null }, + .src_constraints = .{ + .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, + .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .call_frame = .{ .alignment = .@"16" }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, + .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, + .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divtf3" } } }, + .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "truncq" } } }, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._dqa, .mov, .tmp2x, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, + .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, + .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .sse, null, null, null }, + .src_constraints = .{ + .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, + .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .call_frame = .{ .alignment = .@"16" }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, + .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, + .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divtf3" } } }, + .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "truncq" } } }, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", ._ps, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._ps, .mova, .tmp2x, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, + .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, + .{ ._, ._ps, .mova, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, } }, + } }) else err: { + res[0] = ops[0].divTruncInts(&ops[1], cg) catch |err| break :err err; }) catch |err| switch (err) { error.SelectFailed => return cg.fail("failed to select {s} {} {} {}", .{ @tagName(air_tag), - cg.typeOf(bin_op.lhs).fmt(pt), + ty.fmt(pt), ops[0].tracking(cg), ops[1].tracking(cg), }), @@ -7134,7 +9187,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ }, .{ ._, .v_ps, .cvtph2, .tmp0x, .src1q, ._, ._ }, @@ -7168,7 +9221,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, @@ -7198,7 +9251,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ }, .{ ._, .v_ps, .cvtph2, .tmp0x, .src1q, ._, ._ }, @@ -7230,7 +9283,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .v_ps, .cvtph2, .dst0y, .src0x, ._, ._ }, .{ ._, .v_ps, .cvtph2, .tmp0y, .src1x, ._, ._ }, @@ -7259,7 +9312,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -7297,7 +9350,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -7336,7 +9389,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -7376,7 +9429,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -7417,7 +9470,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -7446,7 +9499,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .to_sse, .mem, .none } }, .{ .src = .{ .to_sse, .to_sse, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .v_ss, .div, .dst0x, .src0x, .src1d, ._ }, .{ ._, .v_ss, .round, .dst0x, .dst0x, .dst0d, .rm(.{ .direction = direction, .precision = .inexact }) }, @@ -7462,7 +9515,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .to_mut_sse, .mem, .none } }, .{ .src = .{ .to_mut_sse, .to_sse, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{ .{ ._, ._ss, .div, .dst0x, .src1d, ._, ._ }, .{ ._, ._ss, .round, .dst0x, .dst0d, .rm(.{ .direction = direction, .precision = .inexact }), ._ }, @@ -7493,7 +9546,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._ss, .div, .dst0x, .src1d, ._, ._ }, @@ -7510,7 +9563,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .to_sse, .mem, .none } }, .{ .src = .{ .to_sse, .to_sse, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .v_ps, .div, .dst0x, .src0x, .src1x, ._ }, .{ ._, .v_ps, .round, .dst0x, .dst0x, .rm(.{ .direction = direction, .precision = .inexact }), ._ }, @@ -7526,7 +9579,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .to_mut_sse, .mem, .none } }, .{ .src = .{ .to_mut_sse, .to_sse, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{ .{ ._, ._ps, .div, .dst0x, .src1x, ._, ._ }, .{ ._, ._ps, .round, .dst0x, .dst0x, .rm(.{ .direction = direction, .precision = .inexact }), ._ }, @@ -7557,7 +9610,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -7579,7 +9632,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .to_sse, .mem, .none } }, .{ .src = .{ .to_sse, .to_sse, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .v_ps, .div, .dst0y, .src0y, .src1y, ._ }, .{ ._, .v_ps, .round, .dst0y, .dst0y, .rm(.{ .direction = direction, .precision = .inexact }), ._ }, @@ -7605,7 +9658,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -7637,7 +9690,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -7659,7 +9712,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .to_sse, .mem, .none } }, .{ .src = .{ .to_sse, .to_sse, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .v_sd, .div, .dst0x, .src0x, .src1q, ._ }, .{ ._, .v_sd, .round, .dst0x, .dst0x, .dst0q, .rm(.{ .direction = direction, .precision = .inexact }) }, @@ -7675,7 +9728,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .to_mut_sse, .mem, .none } }, .{ .src = .{ .to_mut_sse, .to_sse, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{ .{ ._, ._sd, .div, .dst0x, .src1q, ._, ._ }, .{ ._, ._sd, .round, .dst0x, .dst0q, .rm(.{ .direction = direction, .precision = .inexact }), ._ }, @@ -7706,7 +9759,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._sd, .div, .dst0x, .src1q, ._, ._ }, @@ -7738,7 +9791,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, @@ -7755,7 +9808,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .to_sse, .mem, .none } }, .{ .src = .{ .to_sse, .to_sse, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .v_pd, .div, .dst0x, .src0x, .src1x, ._ }, .{ ._, .v_pd, .round, .dst0x, .dst0x, .rm(.{ .direction = direction, .precision = .inexact }), ._ }, @@ -7771,7 +9824,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .to_mut_sse, .mem, .none } }, .{ .src = .{ .to_mut_sse, .to_sse, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{ .{ ._, ._pd, .div, .dst0x, .src1x, ._, ._ }, .{ ._, ._pd, .round, .dst0x, .dst0x, .rm(.{ .direction = direction, .precision = .inexact }), ._ }, @@ -7787,7 +9840,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .to_sse, .mem, .none } }, .{ .src = .{ .to_sse, .to_sse, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .v_pd, .div, .dst0y, .src0y, .src1y, ._ }, .{ ._, .v_pd, .round, .dst0y, .dst0y, .rm(.{ .direction = direction, .precision = .inexact }), ._ }, @@ -7813,7 +9866,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -7845,7 +9898,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -7882,7 +9935,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -7919,7 +9972,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -7959,7 +10012,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .reg = .st0 }}, + .dst_temps = .{ .{ .reg = .st0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, .f_, .ld, .src0t, ._, ._, ._ }, @@ -7994,7 +10047,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .reg = .st0 }}, + .dst_temps = .{ .{ .reg = .st0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, .f_, .ld, .src0t, ._, ._, ._ }, @@ -8029,7 +10082,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .reg = .st0 }}, + .dst_temps = .{ .{ .reg = .st0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, .f_, .ld, .src0t, ._, ._, ._ }, @@ -8063,7 +10116,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -8103,7 +10156,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, @@ -8135,7 +10188,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -8173,7 +10226,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -8185,62 +10238,1726 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, } }, - }, .{ - .required_features = .{ .sse, null, null, null }, - .src_constraints = .{ - .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, - .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, - .any, - }, - .patterns = &.{ - .{ .src = .{ .to_mem, .to_mem, .none } }, - }, - .call_frame = .{ .alignment = .@"16" }, - .extra_temps = .{ - .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, - .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, - .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, - .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divtf3" } } }, - .{ .type = .usize, .kind = .{ .symbol = &.{ .name = switch (direction) { - else => unreachable, - .zero => "truncq", - .down => "floorq", - } } } }, - .unused, - .unused, - .unused, - .unused, - }, - .dst_temps = .{.mem}, - .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, - .each = .{ .once = &.{ - .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, - .{ .@"0:", ._ps, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, - .{ ._, ._ps, .mova, .tmp2x, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ }, - .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, - .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, - .{ ._, ._ps, .mova, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, - .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, - .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + }, .{ + .required_features = .{ .sse, null, null, null }, + .src_constraints = .{ + .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, + .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .call_frame = .{ .alignment = .@"16" }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, + .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, + .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divtf3" } } }, + .{ .type = .usize, .kind = .{ .symbol = &.{ .name = switch (direction) { + else => unreachable, + .zero => "truncq", + .down => "floorq", + } } } }, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", ._ps, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._ps, .mova, .tmp2x, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, + .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, + .{ ._, ._ps, .mova, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + } }, + }) catch |err| switch (err) { + error.SelectFailed => return cg.fail("failed to select {s} {} {} {}", .{ + @tagName(air_tag), + cg.typeOf(bin_op.lhs).fmt(pt), + ops[0].tracking(cg), + ops[1].tracking(cg), + }), + else => |e| return e, + }; + try res[0].finish(inst, &.{ bin_op.lhs, bin_op.rhs }, &ops, cg); + }, + .div_floor => |air_tag| if (use_old) try cg.airMulDivBinOp(inst, air_tag) else fallback: { + const bin_op = air_datas[@intFromEnum(inst)].bin_op; + if (cg.floatBits(cg.typeOf(bin_op.lhs).scalarType(zcu)) == null) break :fallback try cg.airMulDivBinOp(inst, air_tag); + var ops = try cg.tempsFromOperands(inst, .{ bin_op.lhs, bin_op.rhs }); + var res: [1]Temp = undefined; + cg.select(&res, &.{cg.typeOf(bin_op.lhs)}, &ops, comptime &.{ .{ + .required_features = .{ .f16c, null, null, null }, + .src_constraints = .{ + .{ .scalar_float = .{ .of = .word, .is = .word } }, + .{ .scalar_float = .{ .of = .word, .is = .word } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_sse, .to_sse, .none } }, + }, + .extra_temps = .{ + .{ .type = .f32, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .sse } } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, + .each = .{ .once = &.{ + .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ }, + .{ ._, .v_ps, .cvtph2, .tmp0x, .src1q, ._, ._ }, + .{ ._, .v_ss, .div, .dst0x, .dst0x, .tmp0d, ._ }, + .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ }, + .{ ._, .v_ps, .cvtph2, .dst0x, .dst0q, ._, ._ }, + .{ ._, .v_ss, .round, .dst0x, .dst0x, .dst0d, .rm(.{ .direction = .down, .precision = .inexact }) }, + .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ }, + } }, + }, .{ + .required_features = .{ .sse, null, null, null }, + .src_constraints = .{ + .{ .scalar_float = .{ .of = .word, .is = .word } }, + .{ .scalar_float = .{ .of = .word, .is = .word } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .{ .to_reg = .xmm0 }, .{ .to_reg = .xmm1 }, .none } }, + }, + .call_frame = .{ .alignment = .@"16" }, + .extra_temps = .{ + .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divhf3" } } }, + .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floorh" } } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, + .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, + .each = .{ .once = &.{ + .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, + .{ ._, ._, .call, .tmp1d, ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .f16c, null, null, null }, + .src_constraints = .{ + .{ .scalar_float = .{ .of = .qword, .is = .word } }, + .{ .scalar_float = .{ .of = .qword, .is = .word } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .mem, .mem, .none } }, + .{ .src = .{ .to_sse, .mem, .none } }, + .{ .src = .{ .mem, .to_sse, .none } }, + .{ .src = .{ .to_sse, .to_sse, .none } }, + }, + .extra_temps = .{ + .{ .type = .vector_4_f32, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .sse } } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, + .each = .{ .once = &.{ + .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ }, + .{ ._, .v_ps, .cvtph2, .tmp0x, .src1q, ._, ._ }, + .{ ._, .v_ps, .div, .dst0x, .dst0x, .tmp0x, ._ }, + .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ }, + .{ ._, .v_ps, .cvtph2, .dst0x, .dst0q, ._, ._ }, + .{ ._, .v_ps, .round, .dst0x, .dst0x, .rm(.{ .direction = .down, .precision = .inexact }), ._ }, + .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ }, + } }, + }, .{ + .required_features = .{ .f16c, null, null, null }, + .src_constraints = .{ + .{ .scalar_float = .{ .of = .xword, .is = .word } }, + .{ .scalar_float = .{ .of = .xword, .is = .word } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .mem, .mem, .none } }, + .{ .src = .{ .to_sse, .mem, .none } }, + .{ .src = .{ .mem, .to_sse, .none } }, + .{ .src = .{ .to_sse, .to_sse, .none } }, + }, + .extra_temps = .{ + .{ .type = .vector_8_f32, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .sse } } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, + .each = .{ .once = &.{ + .{ ._, .v_ps, .cvtph2, .dst0y, .src0x, ._, ._ }, + .{ ._, .v_ps, .cvtph2, .tmp0y, .src1x, ._, ._ }, + .{ ._, .v_ps, .div, .dst0y, .dst0y, .tmp0y, ._ }, + .{ ._, .v_, .cvtps2ph, .dst0x, .dst0y, .rm(.{}), ._ }, + .{ ._, .v_ps, .cvtph2, .dst0y, .dst0x, ._, ._ }, + .{ ._, .v_ps, .round, .dst0y, .dst0y, .rm(.{ .direction = .down, .precision = .inexact }), ._ }, + .{ ._, .v_, .cvtps2ph, .dst0x, .dst0y, .rm(.{}), ._ }, + } }, + }, .{ + .required_features = .{ .f16c, null, null, null }, + .src_constraints = .{ + .{ .multiple_scalar_float = .{ .of = .xword, .is = .word } }, + .{ .multiple_scalar_float = .{ .of = .xword, .is = .word } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } }, + .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", .v_ps, .cvtph2, .tmp1y, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, .v_ps, .cvtph2, .tmp2y, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, .v_ps, .div, .tmp1y, .tmp1y, .tmp2y, ._ }, + .{ ._, .v_, .cvtps2ph, .tmp1x, .tmp1y, .rm(.{}), ._ }, + .{ ._, .v_ps, .cvtph2, .tmp1y, .tmp1x, ._, ._ }, + .{ ._, .v_ps, .round, .tmp1y, .tmp1y, .rm(.{ .direction = .down, .precision = .inexact }), ._ }, + .{ ._, .v_, .cvtps2ph, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1y, .rm(.{}), ._ }, + .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .avx, null, null, null }, + .src_constraints = .{ + .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, + .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .call_frame = .{ .alignment = .@"16" }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, + .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, + .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divhf3" } } }, + .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floorh" } } }, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", .vp_, .xor, .tmp2x, .tmp2x, .tmp2x, ._ }, + .{ ._, .vp_w, .insr, .tmp1x, .tmp2x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0) }, + .{ ._, .vp_w, .insr, .tmp2x, .tmp2x, .memia(.src1w, .tmp0, .add_unaligned_size), .ui(0) }, + .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, + .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, + .{ ._, .vp_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1x, .ui(0), ._ }, + .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .sse4_1, null, null, null }, + .src_constraints = .{ + .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, + .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .call_frame = .{ .alignment = .@"16" }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, + .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, + .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divhf3" } } }, + .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floorh" } } }, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ }, + .{ ._, .p_, .xor, .tmp2x, .tmp2x, ._, ._ }, + .{ ._, .p_w, .insr, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0), ._ }, + .{ ._, .p_w, .insr, .tmp2x, .memia(.src1w, .tmp0, .add_unaligned_size), .ui(0), ._ }, + .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, + .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, + .{ ._, .p_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1x, .ui(0), ._ }, + .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .sse2, null, null, null }, + .src_constraints = .{ + .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, + .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .call_frame = .{ .alignment = .@"16" }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, + .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, + .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divhf3" } } }, + .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floorh" } } }, + .{ .type = .f16, .kind = .{ .reg = .ax } }, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ }, + .{ ._, .p_, .xor, .tmp2x, .tmp2x, ._, ._ }, + .{ ._, .p_w, .insr, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0), ._ }, + .{ ._, .p_w, .insr, .tmp2x, .memia(.src1w, .tmp0, .add_unaligned_size), .ui(0), ._ }, + .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, + .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, + .{ ._, .p_w, .extr, .tmp5d, .tmp1x, .ui(0), ._ }, + .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp5w, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .sse, null, null, null }, + .src_constraints = .{ + .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, + .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .call_frame = .{ .alignment = .@"16" }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .f16, .kind = .{ .reg = .ax } }, + .{ .type = .f32, .kind = .mem }, + .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, + .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, + .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divhf3" } } }, + .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floorh" } } }, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._, .mov, .mem(.tmp2d), .tmp1d, ._, ._ }, + .{ ._, ._ss, .mov, .tmp3x, .mem(.tmp2d), ._, ._ }, + .{ ._, ._, .movzx, .tmp1d, .memia(.src1w, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._, .mov, .mem(.tmp2d), .tmp1d, ._, ._ }, + .{ ._, ._ss, .mov, .tmp4x, .mem(.tmp2d), ._, ._ }, + .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, + .{ ._, ._, .call, .tmp6d, ._, ._, ._ }, + .{ ._, ._ss, .mov, .mem(.tmp2d), .tmp3x, ._, ._ }, + .{ ._, ._, .mov, .tmp1d, .mem(.tmp2d), ._, ._ }, + .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .avx, null, null, null }, + .src_constraints = .{ + .{ .scalar_float = .{ .of = .dword, .is = .dword } }, + .{ .scalar_float = .{ .of = .dword, .is = .dword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_sse, .mem, .none } }, + .{ .src = .{ .to_sse, .to_sse, .none } }, + }, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, + .each = .{ .once = &.{ + .{ ._, .v_ss, .div, .dst0x, .src0x, .src1d, ._ }, + .{ ._, .v_ss, .round, .dst0x, .dst0x, .dst0d, .rm(.{ .direction = .down, .precision = .inexact }) }, + } }, + }, .{ + .required_features = .{ .sse4_1, null, null, null }, + .src_constraints = .{ + .{ .scalar_float = .{ .of = .dword, .is = .dword } }, + .{ .scalar_float = .{ .of = .dword, .is = .dword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mut_sse, .mem, .none } }, + .{ .src = .{ .to_mut_sse, .to_sse, .none } }, + }, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, + .each = .{ .once = &.{ + .{ ._, ._ss, .div, .dst0x, .src1d, ._, ._ }, + .{ ._, ._ss, .round, .dst0x, .dst0d, .rm(.{ .direction = .down, .precision = .inexact }), ._ }, + } }, + }, .{ + .required_features = .{ .sse, null, null, null }, + .src_constraints = .{ + .{ .scalar_float = .{ .of = .dword, .is = .dword } }, + .{ .scalar_float = .{ .of = .dword, .is = .dword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .{ .to_reg = .xmm0 }, .to_mem, .none } }, + }, + .call_frame = .{ .alignment = .@"16" }, + .extra_temps = .{ + .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "floorf" } } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, + .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, + .each = .{ .once = &.{ + .{ ._, ._ss, .div, .dst0x, .src1d, ._, ._ }, + .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .avx, null, null, null }, + .src_constraints = .{ + .{ .scalar_float = .{ .of = .xword, .is = .dword } }, + .{ .scalar_float = .{ .of = .xword, .is = .dword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_sse, .mem, .none } }, + .{ .src = .{ .to_sse, .to_sse, .none } }, + }, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, + .each = .{ .once = &.{ + .{ ._, .v_ps, .div, .dst0x, .src0x, .src1x, ._ }, + .{ ._, .v_ps, .round, .dst0x, .dst0x, .rm(.{ .direction = .down, .precision = .inexact }), ._ }, + } }, + }, .{ + .required_features = .{ .sse4_1, null, null, null }, + .src_constraints = .{ + .{ .scalar_float = .{ .of = .xword, .is = .dword } }, + .{ .scalar_float = .{ .of = .xword, .is = .dword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mut_sse, .mem, .none } }, + .{ .src = .{ .to_mut_sse, .to_sse, .none } }, + }, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, + .each = .{ .once = &.{ + .{ ._, ._ps, .div, .dst0x, .src1x, ._, ._ }, + .{ ._, ._ps, .round, .dst0x, .dst0x, .rm(.{ .direction = .down, .precision = .inexact }), ._ }, + } }, + }, .{ + .required_features = .{ .sse, null, null, null }, + .src_constraints = .{ + .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, + .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .call_frame = .{ .alignment = .@"16" }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, + .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "floorf" } } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", ._ss, .mov, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._ss, .div, .tmp1x, .memia(.src1d, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, + .{ ._, ._ss, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .avx, null, null, null }, + .src_constraints = .{ + .{ .scalar_float = .{ .of = .yword, .is = .dword } }, + .{ .scalar_float = .{ .of = .yword, .is = .dword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_sse, .mem, .none } }, + .{ .src = .{ .to_sse, .to_sse, .none } }, + }, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, + .each = .{ .once = &.{ + .{ ._, .v_ps, .div, .dst0y, .src0y, .src1y, ._ }, + .{ ._, .v_ps, .round, .dst0y, .dst0y, .rm(.{ .direction = .down, .precision = .inexact }), ._ }, + } }, + }, .{ + .required_features = .{ .avx, null, null, null }, + .src_constraints = .{ + .{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } }, + .{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", .v_ps, .mova, .tmp1y, .memia(.src0y, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, .v_ps, .div, .tmp1y, .tmp1y, .memia(.src1y, .tmp0, .add_unaligned_size), ._ }, + .{ ._, .v_ps, .round, .tmp1y, .tmp1y, .rm(.{ .direction = .down, .precision = .inexact }), ._ }, + .{ ._, .v_ps, .mova, .memia(.dst0y, .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .sse4_1, null, null, null }, + .src_constraints = .{ + .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, + .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", ._ps, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._ps, .div, .tmp1x, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._ps, .round, .tmp1x, .tmp1x, .rm(.{ .direction = .down, .precision = .inexact }), ._ }, + .{ ._, ._ps, .mova, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .avx, null, null, null }, + .src_constraints = .{ + .{ .scalar_float = .{ .of = .qword, .is = .qword } }, + .{ .scalar_float = .{ .of = .qword, .is = .qword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_sse, .mem, .none } }, + .{ .src = .{ .to_sse, .to_sse, .none } }, + }, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, + .each = .{ .once = &.{ + .{ ._, .v_sd, .div, .dst0x, .src0x, .src1q, ._ }, + .{ ._, .v_sd, .round, .dst0x, .dst0x, .dst0q, .rm(.{ .direction = .down, .precision = .inexact }) }, + } }, + }, .{ + .required_features = .{ .sse4_1, null, null, null }, + .src_constraints = .{ + .{ .scalar_float = .{ .of = .qword, .is = .qword } }, + .{ .scalar_float = .{ .of = .qword, .is = .qword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mut_sse, .mem, .none } }, + .{ .src = .{ .to_mut_sse, .to_sse, .none } }, + }, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, + .each = .{ .once = &.{ + .{ ._, ._sd, .div, .dst0x, .src1q, ._, ._ }, + .{ ._, ._sd, .round, .dst0x, .dst0q, .rm(.{ .direction = .down, .precision = .inexact }), ._ }, + } }, + }, .{ + .required_features = .{ .sse2, null, null, null }, + .src_constraints = .{ + .{ .scalar_float = .{ .of = .qword, .is = .qword } }, + .{ .scalar_float = .{ .of = .qword, .is = .qword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .{ .to_reg = .xmm0 }, .to_mem, .none } }, + }, + .call_frame = .{ .alignment = .@"16" }, + .extra_temps = .{ + .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "floor" } } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, + .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, + .each = .{ .once = &.{ + .{ ._, ._sd, .div, .dst0x, .src1q, ._, ._ }, + .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .sse, null, null, null }, + .src_constraints = .{ + .{ .scalar_float = .{ .of = .qword, .is = .qword } }, + .{ .scalar_float = .{ .of = .qword, .is = .qword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .{ .to_reg = .xmm0 }, .{ .to_reg = .xmm1 }, .none } }, + }, + .call_frame = .{ .alignment = .@"16" }, + .extra_temps = .{ + .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divdf3" } } }, + .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "floor" } } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, + .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, + .each = .{ .once = &.{ + .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, + .{ ._, ._, .call, .tmp1d, ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .avx, null, null, null }, + .src_constraints = .{ + .{ .scalar_float = .{ .of = .xword, .is = .qword } }, + .{ .scalar_float = .{ .of = .xword, .is = .qword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_sse, .mem, .none } }, + .{ .src = .{ .to_sse, .to_sse, .none } }, + }, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, + .each = .{ .once = &.{ + .{ ._, .v_pd, .div, .dst0x, .src0x, .src1x, ._ }, + .{ ._, .v_pd, .round, .dst0x, .dst0x, .rm(.{ .direction = .down, .precision = .inexact }), ._ }, + } }, + }, .{ + .required_features = .{ .sse4_1, null, null, null }, + .src_constraints = .{ + .{ .scalar_float = .{ .of = .xword, .is = .qword } }, + .{ .scalar_float = .{ .of = .xword, .is = .qword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mut_sse, .mem, .none } }, + .{ .src = .{ .to_mut_sse, .to_sse, .none } }, + }, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, + .each = .{ .once = &.{ + .{ ._, ._pd, .div, .dst0x, .src1x, ._, ._ }, + .{ ._, ._pd, .round, .dst0x, .dst0x, .rm(.{ .direction = .down, .precision = .inexact }), ._ }, + } }, + }, .{ + .required_features = .{ .avx, null, null, null }, + .src_constraints = .{ + .{ .scalar_float = .{ .of = .yword, .is = .qword } }, + .{ .scalar_float = .{ .of = .yword, .is = .qword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_sse, .mem, .none } }, + .{ .src = .{ .to_sse, .to_sse, .none } }, + }, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, + .each = .{ .once = &.{ + .{ ._, .v_pd, .div, .dst0y, .src0y, .src1y, ._ }, + .{ ._, .v_pd, .round, .dst0y, .dst0y, .rm(.{ .direction = .down, .precision = .inexact }), ._ }, + } }, + }, .{ + .required_features = .{ .avx, null, null, null }, + .src_constraints = .{ + .{ .multiple_scalar_float = .{ .of = .yword, .is = .qword } }, + .{ .multiple_scalar_float = .{ .of = .yword, .is = .qword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .vector_4_f64, .kind = .{ .rc = .sse } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", .v_pd, .mova, .tmp1y, .memia(.src0y, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, .v_pd, .div, .tmp1y, .tmp1y, .memia(.src1y, .tmp0, .add_unaligned_size), ._ }, + .{ ._, .v_pd, .round, .tmp1y, .tmp1y, .rm(.{ .direction = .down, .precision = .inexact }), ._ }, + .{ ._, .v_pd, .mova, .memia(.dst0y, .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .sse4_1, null, null, null }, + .src_constraints = .{ + .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }, + .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", ._pd, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._pd, .div, .tmp1x, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._pd, .round, .tmp1x, .tmp1x, .rm(.{ .direction = .down, .precision = .inexact }), ._ }, + .{ ._, ._pd, .mova, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .sse2, null, null, null }, + .src_constraints = .{ + .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, + .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .call_frame = .{ .alignment = .@"16" }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, + .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "floor" } } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", ._sd, .mov, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._sd, .div, .tmp1x, .memia(.src1q, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, + .{ ._, ._sd, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .sse, null, null, null }, + .src_constraints = .{ + .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, + .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .call_frame = .{ .alignment = .@"16" }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, + .{ .type = .f64, .kind = .{ .reg = .xmm1 } }, + .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divdf3" } } }, + .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "floor" } } }, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", ._ps, .xor, .tmp1x, .tmp1x, ._, ._ }, + .{ ._, ._ps, .xor, .tmp2x, .tmp2x, ._, ._ }, + .{ ._, ._ps, .movl, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._ps, .movl, .tmp2x, .memia(.src1q, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, + .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, + .{ ._, ._ps, .movl, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .x87, null, null, null }, + .src_constraints = .{ + .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, + .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .call_frame = .{ .size = 16, .alignment = .@"16" }, + .extra_temps = .{ + .{ .type = .f80, .kind = .{ .reg = .st6 } }, + .{ .type = .f80, .kind = .{ .reg = .st7 } }, + .{ .type = .f80, .kind = .{ .frame = .call_frame } }, + .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floorx" } } }, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .{ .reg = .st0 }, .unused }, + .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, + .each = .{ .once = &.{ + .{ ._, .f_, .ld, .src0t, ._, ._, ._ }, + .{ ._, .f_, .ld, .src1t, ._, ._, ._ }, + .{ ._, .f_p, .div, ._, ._, ._, ._ }, + .{ ._, .f_p, .st, .mem(.tmp2t), ._, ._, ._ }, + .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .x87, null, null, null }, + .src_constraints = .{ + .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, + .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .call_frame = .{ .size = 16, .alignment = .@"16" }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .f80, .kind = .{ .reg = .st6 } }, + .{ .type = .f80, .kind = .{ .reg = .st7 } }, + .{ .type = .f80, .kind = .{ .frame = .call_frame } }, + .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floorx" } } }, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", .f_, .ld, .memia(.src0t, .tmp0, .add_unaligned_size), ._, ._, ._ }, + .{ ._, .f_, .ld, .memia(.src1t, .tmp0, .add_unaligned_size), ._, ._, ._ }, + .{ ._, .f_p, .div, ._, ._, ._, ._ }, + .{ ._, .f_p, .st, .mem(.tmp3t), ._, ._, ._ }, + .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, + .{ .pseudo, .f_cstp, .de, ._, ._, ._, ._ }, + .{ ._, .f_p, .st, .memia(.dst0t, .tmp0, .add_unaligned_size), ._, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .sse, null, null, null }, + .src_constraints = .{ + .{ .scalar_float = .{ .of = .xword, .is = .xword } }, + .{ .scalar_float = .{ .of = .xword, .is = .xword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .{ .to_reg = .xmm0 }, .{ .to_reg = .xmm1 }, .none } }, + }, + .call_frame = .{ .alignment = .@"16" }, + .extra_temps = .{ + .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divtf3" } } }, + .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "floorq" } } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, + .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, + .each = .{ .once = &.{ + .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, + .{ ._, ._, .call, .tmp1d, ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .avx, null, null, null }, + .src_constraints = .{ + .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, + .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .call_frame = .{ .alignment = .@"16" }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, + .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, + .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divtf3" } } }, + .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "floorq" } } }, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", .v_dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, .v_dqa, .mov, .tmp2x, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, + .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, + .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .sse2, null, null, null }, + .src_constraints = .{ + .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, + .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .call_frame = .{ .alignment = .@"16" }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, + .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, + .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divtf3" } } }, + .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "floorq" } } }, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._dqa, .mov, .tmp2x, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, + .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, + .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .sse, null, null, null }, + .src_constraints = .{ + .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, + .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .call_frame = .{ .alignment = .@"16" }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, + .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, + .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divtf3" } } }, + .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "floorq" } } }, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", ._ps, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._ps, .mova, .tmp2x, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, + .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, + .{ ._, ._ps, .mova, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + } }) catch |err| switch (err) { + error.SelectFailed => return cg.fail("failed to select {s} {} {} {}", .{ + @tagName(air_tag), + cg.typeOf(bin_op.lhs).fmt(pt), + ops[0].tracking(cg), + ops[1].tracking(cg), + }), + else => |e| return e, + }; + try res[0].finish(inst, &.{ bin_op.lhs, bin_op.rhs }, &ops, cg); + }, + .rem, .rem_optimized => |air_tag| if (use_old) try cg.airMulDivBinOp(inst, .rem) else { + const bin_op = air_datas[@intFromEnum(inst)].bin_op; + var ops = try cg.tempsFromOperands(inst, .{ bin_op.lhs, bin_op.rhs }); + var res: [1]Temp = undefined; + cg.select(&res, &.{cg.typeOf(bin_op.lhs)}, &ops, comptime &.{ .{ + .src_constraints = .{ .{ .signed_int = .byte }, .{ .signed_int = .byte }, .any }, + .patterns = &.{ + .{ .src = .{ .mem, .mem, .none } }, + .{ .src = .{ .to_gpr, .mem, .none } }, + .{ .src = .{ .mem, .to_gpr, .none } }, + .{ .src = .{ .to_gpr, .to_gpr, .none } }, + }, + .dst_temps = .{ .{ .reg = .ah }, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .movsx, .dst0d, .src0b, ._, ._ }, + .{ ._, .i_, .div, .src1b, ._, ._, ._ }, + } }, + }, .{ + .src_constraints = .{ .{ .unsigned_int = .byte }, .{ .unsigned_int = .byte }, .any }, + .patterns = &.{ + .{ .src = .{ .mem, .mem, .none } }, + .{ .src = .{ .to_gpr, .mem, .none } }, + .{ .src = .{ .mem, .to_gpr, .none } }, + .{ .src = .{ .to_gpr, .to_gpr, .none } }, + }, + .dst_temps = .{ .{ .reg = .ah }, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .movzx, .dst0d, .src0b, ._, ._ }, + .{ ._, ._, .div, .src1b, ._, ._, ._ }, + } }, + }, .{ + .src_constraints = .{ .{ .signed_int = .word }, .{ .signed_int = .word }, .any }, + .patterns = &.{ + .{ .src = .{ .{ .to_reg = .ax }, .mem, .none } }, + .{ .src = .{ .{ .to_reg = .ax }, .to_gpr, .none } }, + }, + .dst_temps = .{ .{ .reg = .dx }, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .cwd, ._, ._, ._, ._ }, + .{ ._, .i_, .div, .src1w, ._, ._, ._ }, + } }, + }, .{ + .src_constraints = .{ .{ .unsigned_int = .word }, .{ .unsigned_int = .word }, .any }, + .patterns = &.{ + .{ .src = .{ .{ .to_reg = .ax }, .mem, .none } }, + .{ .src = .{ .{ .to_reg = .ax }, .to_gpr, .none } }, + }, + .dst_temps = .{ .{ .reg = .dx }, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .xor, .dst0d, .dst0d, ._, ._ }, + .{ ._, ._, .div, .src1w, ._, ._, ._ }, + } }, + }, .{ + .src_constraints = .{ .{ .signed_int = .dword }, .{ .signed_int = .dword }, .any }, + .patterns = &.{ + .{ .src = .{ .{ .to_reg = .eax }, .mem, .none } }, + .{ .src = .{ .{ .to_reg = .eax }, .to_gpr, .none } }, + }, + .dst_temps = .{ .{ .reg = .edx }, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .cdq, ._, ._, ._, ._ }, + .{ ._, .i_, .div, .src1d, ._, ._, ._ }, + } }, + }, .{ + .src_constraints = .{ .{ .unsigned_int = .dword }, .{ .unsigned_int = .dword }, .any }, + .patterns = &.{ + .{ .src = .{ .{ .to_reg = .eax }, .mem, .none } }, + .{ .src = .{ .{ .to_reg = .eax }, .to_gpr, .none } }, + }, + .dst_temps = .{ .{ .reg = .edx }, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .xor, .dst0d, .dst0d, ._, ._ }, + .{ ._, ._, .div, .src1d, ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .@"64bit", null, null, null }, + .src_constraints = .{ .{ .signed_int = .qword }, .{ .signed_int = .qword }, .any }, + .patterns = &.{ + .{ .src = .{ .{ .to_reg = .rax }, .mem, .none } }, + .{ .src = .{ .{ .to_reg = .rax }, .to_gpr, .none } }, + }, + .dst_temps = .{ .{ .reg = .rdx }, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .cqo, ._, ._, ._, ._ }, + .{ ._, .i_, .div, .src1q, ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .@"64bit", null, null, null }, + .src_constraints = .{ .{ .unsigned_int = .qword }, .{ .unsigned_int = .qword }, .any }, + .patterns = &.{ + .{ .src = .{ .{ .to_reg = .rax }, .mem, .none } }, + .{ .src = .{ .{ .to_reg = .rax }, .to_gpr, .none } }, + }, + .dst_temps = .{ .{ .reg = .rdx }, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .xor, .dst0q, .dst0q, ._, ._ }, + .{ ._, ._, .div, .src1q, ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .@"64bit", null, null, null }, + .src_constraints = .{ .{ .signed_int = .xword }, .{ .signed_int = .xword }, .any }, + .patterns = &.{ + .{ .src = .{ + .{ .to_param_gpr_pair = .{ .cc = .ccc, .index = 0 } }, + .{ .to_param_gpr_pair = .{ .cc = .ccc, .index = 2 } }, + .none, + } }, + }, + .call_frame = .{ .alignment = .@"16" }, + .extra_temps = .{ + .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__modti3" } } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .{ .ret_gpr_pair = .{ .cc = .ccc, .index = 0 } }, .unused }, + .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, + .each = .{ .once = &.{ + .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .@"64bit", null, null, null }, + .src_constraints = .{ .{ .unsigned_int = .xword }, .{ .unsigned_int = .xword }, .any }, + .patterns = &.{ + .{ .src = .{ + .{ .to_param_gpr_pair = .{ .cc = .ccc, .index = 0 } }, + .{ .to_param_gpr_pair = .{ .cc = .ccc, .index = 2 } }, + .none, } }, + }, + .call_frame = .{ .alignment = .@"16" }, + .extra_temps = .{ + .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__umodti3" } } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .{ .ret_gpr_pair = .{ .cc = .ccc, .index = 0 } }, .unused }, + .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, + .each = .{ .once = &.{ + .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .@"64bit", null, null, null }, + .src_constraints = .{ + .{ .remainder_signed_int = .{ .of = .dword, .is = .dword } }, + .{ .remainder_signed_int = .{ .of = .dword, .is = .dword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mut_mem, .to_mut_mem, .none } }, + }, + .call_frame = .{ .alignment = .@"16" }, + .extra_temps = .{ + .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .index = 0 } } }, + .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .index = 1 } } }, + .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .index = 2 } } }, + .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .index = 3 } } }, + .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__modei4" } } }, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, + .each = .{ .once = &.{ + .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ }, + .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, + .{ ._, ._, .lea, .tmp2p, .mem(.src1), ._, ._ }, + .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_8_size), ._, ._ }, + .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .@"64bit", null, null, null }, + .src_constraints = .{ + .{ .remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, + .{ .remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .call_frame = .{ .alignment = .@"16" }, + .extra_temps = .{ + .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .index = 0 } } }, + .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .index = 1 } } }, + .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .index = 2 } } }, + .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .index = 3 } } }, + .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__umodei4" } } }, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, + .each = .{ .once = &.{ + .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ }, + .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, + .{ ._, ._, .lea, .tmp2p, .mem(.src1), ._, ._ }, + .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_8_size), ._, ._ }, + .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .slow_incdec, null, null, null }, + .src_constraints = .{ + .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, + .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .i8, .kind = .{ .reg = .ah } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, .i_, .div, .memia(.src1b, .tmp0, .add_unaligned_size), ._, ._, ._ }, + .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .src_constraints = .{ + .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, + .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .i8, .kind = .{ .reg = .ah } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, .i_, .div, .memia(.src1b, .tmp0, .add_unaligned_size), ._, ._, ._ }, + .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, + .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, + .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .slow_incdec, null, null, null }, + .src_constraints = .{ + .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, + .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .u8, .kind = .{ .reg = .ah } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._, .div, .memia(.src1b, .tmp0, .add_unaligned_size), ._, ._, ._ }, + .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, } }, - }) catch |err| switch (err) { - error.SelectFailed => return cg.fail("failed to select {s} {} {} {}", .{ - @tagName(air_tag), - cg.typeOf(bin_op.lhs).fmt(pt), - ops[0].tracking(cg), - ops[1].tracking(cg), - }), - else => |e| return e, - }; - try res[0].finish(inst, &.{ bin_op.lhs, bin_op.rhs }, &ops, cg); - }, - .rem, .rem_optimized => |air_tag| if (use_old) try cg.airMulDivBinOp(inst, .rem) else fallback: { - const bin_op = air_datas[@intFromEnum(inst)].bin_op; - if (cg.floatBits(cg.typeOf(bin_op.lhs).scalarType(zcu)) == null) break :fallback try cg.airMulDivBinOp(inst, .rem); - var ops = try cg.tempsFromOperands(inst, .{ bin_op.lhs, bin_op.rhs }); - var res: [1]Temp = undefined; - cg.select(&res, &.{cg.typeOf(bin_op.lhs)}, &ops, comptime &.{ .{ + }, .{ + .src_constraints = .{ + .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, + .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .u8, .kind = .{ .reg = .ah } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._, .div, .memia(.src1b, .tmp0, .add_unaligned_size), ._, ._, ._ }, + .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, + .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, + .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .src_constraints = .{ + .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, + .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .i16, .kind = .{ .reg = .ax } }, + .{ .type = .i16, .kind = .{ .reg = .dx } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._, .cwd, ._, ._, ._, ._ }, + .{ ._, .i_, .div, .memia(.src1w, .tmp0, .add_unaligned_size), ._, ._, ._ }, + .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp2w, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .src_constraints = .{ + .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, + .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .u16, .kind = .{ .reg = .ax } }, + .{ .type = .u16, .kind = .{ .reg = .dx } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, + .{ ._, ._, .div, .memia(.src1w, .tmp0, .add_unaligned_size), ._, ._, ._ }, + .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp2w, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .src_constraints = .{ + .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, + .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .i32, .kind = .{ .reg = .eax } }, + .{ .type = .i32, .kind = .{ .reg = .edx } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._, .cdq, ._, ._, ._, ._ }, + .{ ._, .i_, .div, .memia(.src1d, .tmp0, .add_unaligned_size), ._, ._, ._ }, + .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp2d, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .src_constraints = .{ + .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, + .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .u32, .kind = .{ .reg = .eax } }, + .{ .type = .u32, .kind = .{ .reg = .edx } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, + .{ ._, ._, .div, .memia(.src1d, .tmp0, .add_unaligned_size), ._, ._, ._ }, + .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp2d, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .@"64bit", null, null, null }, + .src_constraints = .{ + .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, + .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .i64, .kind = .{ .reg = .rax } }, + .{ .type = .i64, .kind = .{ .reg = .rdx } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._, .cqo, ._, ._, ._, ._ }, + .{ ._, .i_, .div, .memia(.src1q, .tmp0, .add_unaligned_size), ._, ._, ._ }, + .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp2q, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .@"64bit", null, null, null }, + .src_constraints = .{ + .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, + .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .u64, .kind = .{ .reg = .rax } }, + .{ .type = .u64, .kind = .{ .reg = .rdx } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, + .{ ._, ._, .div, .memia(.src1q, .tmp0, .add_unaligned_size), ._, ._, ._ }, + .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp2q, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .@"64bit", null, null, null }, + .src_constraints = .{ + .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, + .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .call_frame = .{ .alignment = .@"16" }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .u64, .kind = .{ .param_gpr = .{ .cc = .ccc, .index = 0 } } }, + .{ .type = .i64, .kind = .{ .param_gpr = .{ .cc = .ccc, .index = 1 } } }, + .{ .type = .u64, .kind = .{ .param_gpr = .{ .cc = .ccc, .index = 2 } } }, + .{ .type = .i64, .kind = .{ .param_gpr = .{ .cc = .ccc, .index = 3 } } }, + .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__modti3" } } }, + .{ .type = .u64, .kind = .{ .ret_gpr = .{ .cc = .ccc, .index = 0 } } }, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._, .mov, .tmp2q, .memiad(.src0q, .tmp0, .add_unaligned_size, 8), ._, ._ }, + .{ ._, ._, .mov, .tmp3q, .memia(.src1q, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._, .mov, .tmp4q, .memiad(.src1q, .tmp0, .add_unaligned_size, 8), ._, ._ }, + .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, + .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp6q, ._, ._ }, + .{ ._, ._, .mov, .memiad(.dst0q, .tmp0, .add_unaligned_size, 8), .tmp3q, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .@"64bit", null, null, null }, + .src_constraints = .{ + .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, + .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .call_frame = .{ .alignment = .@"16" }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .u64, .kind = .{ .param_gpr = .{ .cc = .ccc, .index = 0 } } }, + .{ .type = .u64, .kind = .{ .param_gpr = .{ .cc = .ccc, .index = 1 } } }, + .{ .type = .u64, .kind = .{ .param_gpr = .{ .cc = .ccc, .index = 2 } } }, + .{ .type = .u64, .kind = .{ .param_gpr = .{ .cc = .ccc, .index = 3 } } }, + .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__umodti3" } } }, + .{ .type = .u64, .kind = .{ .ret_gpr = .{ .cc = .ccc, .index = 0 } } }, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._, .mov, .tmp2q, .memiad(.src0q, .tmp0, .add_unaligned_size, 8), ._, ._ }, + .{ ._, ._, .mov, .tmp3q, .memia(.src1q, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._, .mov, .tmp4q, .memiad(.src1q, .tmp0, .add_unaligned_size, 8), ._, ._ }, + .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, + .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp6q, ._, ._ }, + .{ ._, ._, .mov, .memiad(.dst0q, .tmp0, .add_unaligned_size, 8), .tmp3q, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .@"64bit", null, null, null }, + .src_constraints = .{ + .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, + .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mut_mem, .to_mut_mem, .none } }, + }, + .call_frame = .{ .alignment = .@"16" }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .index = 0 } } }, + .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .index = 1 } } }, + .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .index = 2 } } }, + .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .index = 3 } } }, + .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__modei4" } } }, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", ._, .lea, .tmp1p, .memia(.dst0, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._, .lea, .tmp2p, .memia(.src0, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._, .lea, .tmp3p, .memia(.src1, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._, .mov, .tmp4d, .sa(.src0, .add_8_elem_size), ._, ._ }, + .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .sa(.src0, .add_elem_size), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .@"64bit", null, null, null }, + .src_constraints = .{ + .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, + .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mut_mem, .to_mut_mem, .none } }, + }, + .call_frame = .{ .alignment = .@"16" }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .index = 0 } } }, + .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .index = 1 } } }, + .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .index = 2 } } }, + .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .index = 3 } } }, + .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__umodei4" } } }, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", ._, .lea, .tmp1p, .memia(.dst0, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._, .lea, .tmp2p, .memia(.src0, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._, .lea, .tmp3p, .memia(.src1, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._, .mov, .tmp4d, .sa(.src0, .add_8_elem_size), ._, ._ }, + .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .sa(.src0, .add_elem_size), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ .required_features = .{ .sse, null, null, null }, .src_constraints = .{ .{ .scalar_float = .{ .of = .word, .is = .word } }, @@ -8262,7 +11979,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, @@ -8289,7 +12006,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -8323,7 +12040,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -8358,7 +12075,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -8394,7 +12111,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -8433,7 +12150,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, @@ -8460,7 +12177,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -8493,7 +12210,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -8526,7 +12243,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, @@ -8553,7 +12270,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -8586,7 +12303,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -8619,7 +12336,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -8654,7 +12371,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .reg = .st0 }}, + .dst_temps = .{ .{ .reg = .st0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, .v_dqa, .mov, .tmp0x, .mem(.src0x), ._, ._ }, @@ -8685,7 +12402,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .reg = .st0 }}, + .dst_temps = .{ .{ .reg = .st0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._dqa, .mov, .tmp0x, .mem(.src0x), ._, ._ }, @@ -8716,7 +12433,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .reg = .st0 }}, + .dst_temps = .{ .{ .reg = .st0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._ps, .mova, .tmp0x, .mem(.src0x), ._, ._ }, @@ -8747,7 +12464,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -8783,7 +12500,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -8819,7 +12536,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -8855,7 +12572,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, @@ -8882,7 +12599,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -8915,7 +12632,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -8948,7 +12665,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -8997,7 +12714,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, .v_d, .mov, .tmp0d, .src1x, ._, ._ }, @@ -9036,7 +12753,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, .v_d, .mov, .tmp0d, .src1x, ._, ._ }, @@ -9075,7 +12792,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, .v_d, .mov, .tmp0d, .src1x, ._, ._ }, @@ -9111,7 +12828,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, .v_d, .mov, .tmp0d, .src1x, ._, ._ }, @@ -9147,7 +12864,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._d, .mov, .tmp0d, .src1x, ._, ._ }, @@ -9183,7 +12900,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._d, .mov, .tmp0d, .src1x, ._, ._ }, @@ -9219,7 +12936,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._ss, .mov, .mem(.tmp0d), .src1x, ._, ._ }, @@ -9255,7 +12972,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._ss, .mov, .mem(.tmp0d), .src1x, ._, ._ }, @@ -9291,7 +13008,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0x, .sub_unaligned_size), ._, ._ }, @@ -9337,7 +13054,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0x, .sub_unaligned_size), ._, ._ }, @@ -9383,7 +13100,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__addhf3" } } }, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0x, .sub_unaligned_size), ._, ._ }, @@ -9426,7 +13143,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__addhf3" } } }, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0x, .sub_unaligned_size), ._, ._ }, @@ -9469,7 +13186,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__addhf3" } } }, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0x, .sub_unaligned_size), ._, ._ }, @@ -9512,7 +13229,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__addhf3" } } }, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0x, .sub_unaligned_size), ._, ._ }, @@ -9555,7 +13272,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__addhf3" } } }, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0x, .sub_unaligned_size), ._, ._ }, @@ -9599,7 +13316,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__addhf3" } } }, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0x, .sub_unaligned_size), ._, ._ }, @@ -9643,7 +13360,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__addhf3" } } }, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0x, .sub_unaligned_size), ._, ._ }, @@ -9690,7 +13407,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__addhf3" } } }, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0x, .sub_unaligned_size), ._, ._ }, @@ -9737,7 +13454,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, .v_d, .mov, .tmp0d, .src1x, ._, ._ }, @@ -9773,7 +13490,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._d, .mov, .tmp0d, .src1x, ._, ._ }, @@ -9809,7 +13526,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._ss, .mov, .mem(.tmp0d), .src1x, ._, ._ }, @@ -9844,7 +13561,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -9886,7 +13603,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -9928,7 +13645,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -9968,7 +13685,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, .v_q, .mov, .tmp0q, .src1x, ._, ._ }, @@ -10005,7 +13722,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._q, .mov, .tmp0q, .src1x, ._, ._ }, @@ -10042,7 +13759,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._ps, .movl, .mem(.tmp0q), .src1x, ._, ._ }, @@ -10082,7 +13799,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .type = .f64, .kind = .{ .reg = .rax } }, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -10125,7 +13842,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .type = .f64, .kind = .{ .reg = .rax } }, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -10168,7 +13885,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .type = .f64, .kind = .{ .reg = .st6 } }, .{ .type = .f64, .kind = .{ .reg = .st7 } }, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -10215,7 +13932,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .reg = .st0 }}, + .dst_temps = .{ .{ .reg = .st0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, .v_dqa, .mov, .tmp0x, .mem(.src0x), ._, ._ }, @@ -10256,7 +13973,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .reg = .st0 }}, + .dst_temps = .{ .{ .reg = .st0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, .v_dqa, .mov, .tmp0x, .mem(.src0x), ._, ._ }, @@ -10297,7 +14014,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .reg = .st0 }}, + .dst_temps = .{ .{ .reg = .st0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._dqa, .mov, .tmp0x, .mem(.src0x), ._, ._ }, @@ -10338,7 +14055,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .reg = .st0 }}, + .dst_temps = .{ .{ .reg = .st0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._dqa, .mov, .tmp0x, .mem(.src0x), ._, ._ }, @@ -10379,7 +14096,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .reg = .st0 }}, + .dst_temps = .{ .{ .reg = .st0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._ps, .mova, .tmp0x, .mem(.src0x), ._, ._ }, @@ -10420,7 +14137,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .reg = .st0 }}, + .dst_temps = .{ .{ .reg = .st0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._ps, .mova, .tmp0x, .mem(.src0x), ._, ._ }, @@ -10461,7 +14178,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -10507,7 +14224,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -10553,7 +14270,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -10599,7 +14316,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -10645,7 +14362,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -10691,7 +14408,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -10737,7 +14454,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, .v_dqa, .mov, .mem(.tmp0x), .src1x, ._, ._ }, @@ -10776,7 +14493,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._dqa, .mov, .mem(.tmp0x), .src1x, ._, ._ }, @@ -10815,7 +14532,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._dqa, .mov, .mem(.tmp0x), .src1x, ._, ._ }, @@ -10855,7 +14572,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._ps, .mova, .mem(.tmp0x), .src1x, ._, ._ }, @@ -10893,7 +14610,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__addtf3" } } }, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -10937,7 +14654,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__addtf3" } } }, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -10981,7 +14698,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__addtf3" } } }, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -11026,7 +14743,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__addtf3" } } }, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -11064,88 +14781,88 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { var ops = try cg.tempsFromOperands(inst, .{ bin_op.lhs, bin_op.rhs }); try ops[0].toSlicePtr(cg); var res: [1]Temp = undefined; - if (ty_pl.ty.toType().elemType2(zcu).hasRuntimeBitsIgnoreComptime(zcu)) cg.select(&res, &.{ty_pl.ty.toType()}, &ops, comptime &.{ .{ + if (!hack_around_sema_opv_bugs or ty_pl.ty.toType().elemType2(zcu).hasRuntimeBitsIgnoreComptime(zcu)) cg.select(&res, &.{ty_pl.ty.toType()}, &ops, comptime &.{ .{ .patterns = &.{ .{ .src = .{ .to_gpr, .simm32, .none } }, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .each = .{ .once = &.{ - .{ ._, ._, .lea, .dst0p, .leaa(.src0, .add_src0_elem_size_times_src1), ._, ._ }, + .{ ._, ._, .lea, .dst0p, .leaa(.src0, .add_src0_elem_size_mul_src1), ._, ._ }, } }, }, .{ - .dst_constraints = .{.{ .elem_size_is = 1 }}, + .dst_constraints = .{ .{ .elem_size_is = 1 }, .any }, .patterns = &.{ .{ .src = .{ .to_gpr, .to_gpr, .none } }, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .lea, .dst0p, .leai(.src0, .src1), ._, ._ }, } }, }, .{ - .dst_constraints = .{.{ .elem_size_is = 2 }}, + .dst_constraints = .{ .{ .elem_size_is = 2 }, .any }, .patterns = &.{ .{ .src = .{ .to_gpr, .to_gpr, .none } }, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .lea, .dst0p, .leasi(.src0, .@"2", .src1), ._, ._ }, } }, }, .{ - .dst_constraints = .{.{ .elem_size_is = 2 + 1 }}, + .dst_constraints = .{ .{ .elem_size_is = 2 + 1 }, .any }, .patterns = &.{ .{ .src = .{ .to_gpr, .to_gpr, .none } }, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .lea, .dst0p, .leasi(.src1, .@"2", .src1), ._, ._ }, .{ ._, ._, .lea, .dst0p, .leai(.src0, .dst0), ._, ._ }, } }, }, .{ - .dst_constraints = .{.{ .elem_size_is = 4 }}, + .dst_constraints = .{ .{ .elem_size_is = 4 }, .any }, .patterns = &.{ .{ .src = .{ .to_gpr, .to_gpr, .none } }, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .lea, .dst0p, .leasi(.src0, .@"4", .src1), ._, ._ }, } }, }, .{ - .dst_constraints = .{.{ .elem_size_is = 4 + 1 }}, + .dst_constraints = .{ .{ .elem_size_is = 4 + 1 }, .any }, .patterns = &.{ .{ .src = .{ .to_gpr, .to_gpr, .none } }, }, - .dst_temps = .{.{ .ref = .src1 }}, + .dst_temps = .{ .{ .ref = .src1 }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .lea, .dst0p, .leasi(.src1, .@"4", .src1), ._, ._ }, .{ ._, ._, .lea, .dst0p, .leai(.src0, .dst0), ._, ._ }, } }, }, .{ .required_features = .{ .@"64bit", null, null, null }, - .dst_constraints = .{.{ .elem_size_is = 8 }}, + .dst_constraints = .{ .{ .elem_size_is = 8 }, .any }, .patterns = &.{ .{ .src = .{ .to_gpr, .to_gpr, .none } }, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .lea, .dst0p, .leasi(.src0, .@"8", .src1), ._, ._ }, } }, }, .{ .required_features = .{ .@"64bit", null, null, null }, - .dst_constraints = .{.{ .elem_size_is = 8 + 1 }}, + .dst_constraints = .{ .{ .elem_size_is = 8 + 1 }, .any }, .patterns = &.{ .{ .src = .{ .to_gpr, .to_gpr, .none } }, }, - .dst_temps = .{.{ .ref = .src1 }}, + .dst_temps = .{ .{ .ref = .src1 }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .lea, .dst0p, .leasi(.src1, .@"8", .src1), ._, ._ }, .{ ._, ._, .lea, .dst0p, .leai(.src0, .dst0), ._, ._ }, } }, }, .{ - .dst_constraints = .{.po2_elem_size}, + .dst_constraints = .{ .po2_elem_size, .any }, .patterns = &.{ .{ .src = .{ .to_gpr, .to_mut_gpr, .none } }, }, - .dst_temps = .{.{ .ref = .src1 }}, + .dst_temps = .{ .{ .ref = .src1 }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._l, .sh, .src1p, .sa(.none, .add_log2_src0_elem_size), ._, ._ }, @@ -11155,7 +14872,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .patterns = &.{ .{ .src = .{ .to_gpr, .to_gpr, .none } }, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, .i_, .mul, .dst0p, .src1p, .sa(.none, .add_src0_elem_size), ._ }, @@ -11169,9 +14886,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { ops[1].tracking(cg), }), else => |e| return e, - } else { // hack around Sema OPV bugs - res[0] = ops[0]; - } + } else res[0] = ops[0]; try res[0].finish(inst, &.{ bin_op.lhs, bin_op.rhs }, &ops, cg); }, .ptr_sub => |air_tag| if (use_old) try cg.airPtrArithmetic(inst, air_tag) else { @@ -11180,42 +14895,42 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { var ops = try cg.tempsFromOperands(inst, .{ bin_op.lhs, bin_op.rhs }); try ops[0].toSlicePtr(cg); var res: [1]Temp = undefined; - if (ty_pl.ty.toType().elemType2(zcu).hasRuntimeBitsIgnoreComptime(zcu)) cg.select(&res, &.{ty_pl.ty.toType()}, &ops, comptime &.{ .{ + if (!hack_around_sema_opv_bugs or ty_pl.ty.toType().elemType2(zcu).hasRuntimeBitsIgnoreComptime(zcu)) cg.select(&res, &.{ty_pl.ty.toType()}, &ops, comptime &.{ .{ .patterns = &.{ .{ .src = .{ .to_gpr, .simm32, .none } }, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .each = .{ .once = &.{ - .{ ._, ._, .lea, .dst0p, .leaa(.src0, .sub_src0_elem_size_times_src1), ._, ._ }, + .{ ._, ._, .lea, .dst0p, .leaa(.src0, .sub_src0_elem_size_mul_src1), ._, ._ }, } }, }, .{ - .dst_constraints = .{.{ .elem_size_is = 1 }}, + .dst_constraints = .{ .{ .elem_size_is = 1 }, .any }, .patterns = &.{ .{ .src = .{ .to_gpr, .to_mut_gpr, .none } }, }, - .dst_temps = .{.{ .ref = .src1 }}, + .dst_temps = .{ .{ .ref = .src1 }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .neg, .src1p, ._, ._, ._ }, .{ ._, ._, .lea, .dst0p, .leai(.src0, .src1), ._, ._ }, } }, }, .{ - .dst_constraints = .{.{ .elem_size_is = 2 }}, + .dst_constraints = .{ .{ .elem_size_is = 2 }, .any }, .patterns = &.{ .{ .src = .{ .to_gpr, .to_mut_gpr, .none } }, }, - .dst_temps = .{.{ .ref = .src1 }}, + .dst_temps = .{ .{ .ref = .src1 }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .neg, .src1p, ._, ._, ._ }, .{ ._, ._, .lea, .dst0p, .leasi(.src0, .@"2", .src1), ._, ._ }, } }, }, .{ - .dst_constraints = .{.{ .elem_size_is = 2 + 1 }}, + .dst_constraints = .{ .{ .elem_size_is = 2 + 1 }, .any }, .patterns = &.{ .{ .src = .{ .to_gpr, .to_gpr, .none } }, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .lea, .dst0p, .leasi(.src1, .@"2", .src1), ._, ._ }, @@ -11223,22 +14938,22 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ ._, ._, .lea, .dst0p, .leai(.src0, .dst0), ._, ._ }, } }, }, .{ - .dst_constraints = .{.{ .elem_size_is = 4 }}, + .dst_constraints = .{ .{ .elem_size_is = 4 }, .any }, .patterns = &.{ .{ .src = .{ .to_gpr, .to_mut_gpr, .none } }, }, - .dst_temps = .{.{ .ref = .src1 }}, + .dst_temps = .{ .{ .ref = .src1 }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .neg, .src1p, ._, ._, ._ }, .{ ._, ._, .lea, .dst0p, .leasi(.src0, .@"4", .src1), ._, ._ }, } }, }, .{ - .dst_constraints = .{.{ .elem_size_is = 4 + 1 }}, + .dst_constraints = .{ .{ .elem_size_is = 4 + 1 }, .any }, .patterns = &.{ .{ .src = .{ .to_gpr, .to_gpr, .none } }, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .lea, .dst0p, .leasi(.src1, .@"4", .src1), ._, ._ }, @@ -11247,11 +14962,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { } }, }, .{ .required_features = .{ .@"64bit", null, null, null }, - .dst_constraints = .{.{ .elem_size_is = 8 }}, + .dst_constraints = .{ .{ .elem_size_is = 8 }, .any }, .patterns = &.{ .{ .src = .{ .to_gpr, .to_mut_gpr, .none } }, }, - .dst_temps = .{.{ .ref = .src1 }}, + .dst_temps = .{ .{ .ref = .src1 }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .neg, .src1p, ._, ._, ._ }, @@ -11259,11 +14974,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { } }, }, .{ .required_features = .{ .@"64bit", null, null, null }, - .dst_constraints = .{.{ .elem_size_is = 8 + 1 }}, + .dst_constraints = .{ .{ .elem_size_is = 8 + 1 }, .any }, .patterns = &.{ .{ .src = .{ .to_gpr, .to_gpr, .none } }, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .lea, .dst0p, .leasi(.src1, .@"8", .src1), ._, ._ }, @@ -11271,11 +14986,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ ._, ._, .lea, .dst0p, .leai(.src0, .dst0), ._, ._ }, } }, }, .{ - .dst_constraints = .{.po2_elem_size}, + .dst_constraints = .{ .po2_elem_size, .any }, .patterns = &.{ .{ .src = .{ .to_gpr, .to_mut_gpr, .none } }, }, - .dst_temps = .{.{ .ref = .src1 }}, + .dst_temps = .{ .{ .ref = .src1 }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._l, .sa, .src1p, .sa(.none, .add_log2_src0_elem_size), ._, ._ }, @@ -11286,7 +15001,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .patterns = &.{ .{ .src = .{ .to_gpr, .to_gpr, .none } }, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, .i_, .mul, .dst0p, .src1p, .sa(.none, .sub_src0_elem_size), ._ }, @@ -11300,10 +15015,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { ops[1].tracking(cg), }), else => |e| return e, - } else { - // hack around Sema OPV bugs - res[0] = ops[0]; - } + } else res[0] = ops[0]; try res[0].finish(inst, &.{ bin_op.lhs, bin_op.rhs }, &ops, cg); }, .max => |air_tag| if (use_old) try cg.airBinOp(inst, air_tag) else { @@ -11316,7 +15028,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .patterns = &.{ .{ .src = .{ .to_mut_gpr, .to_gpr, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .cmp, .src0b, .src1b, ._, ._ }, @@ -11329,7 +15041,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_mut_gpr, .to_gpr, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .cmp, .src0b, .src1b, ._, ._ }, @@ -11342,7 +15054,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .patterns = &.{ .{ .src = .{ .to_mut_gpr, .to_gpr, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .cmp, .src0b, .src1b, ._, ._ }, @@ -11355,7 +15067,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_mut_gpr, .to_gpr, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .cmp, .src0b, .src1b, ._, ._ }, @@ -11370,7 +15082,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_mut_gpr, .to_gpr, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .cmp, .src0w, .src1w, ._, ._ }, @@ -11383,7 +15095,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_mut_gpr, .to_gpr, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .cmp, .src0w, .src1w, ._, ._ }, @@ -11398,7 +15110,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_mut_gpr, .to_gpr, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .cmp, .src0w, .src1w, ._, ._ }, @@ -11411,7 +15123,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_mut_gpr, .to_gpr, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .cmp, .src0w, .src1w, ._, ._ }, @@ -11426,7 +15138,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_mut_gpr, .to_gpr, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .cmp, .src0d, .src1d, ._, ._ }, @@ -11439,7 +15151,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_mut_gpr, .to_gpr, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .cmp, .src0d, .src1d, ._, ._ }, @@ -11454,7 +15166,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_mut_gpr, .to_gpr, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .cmp, .src0d, .src1d, ._, ._ }, @@ -11467,7 +15179,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_mut_gpr, .to_gpr, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .cmp, .src0d, .src1d, ._, ._ }, @@ -11482,7 +15194,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_mut_gpr, .to_gpr, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .cmp, .src0q, .src1q, ._, ._ }, @@ -11496,7 +15208,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_mut_gpr, .to_gpr, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .cmp, .src0q, .src1q, ._, ._ }, @@ -11511,7 +15223,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_mut_gpr, .to_gpr, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .cmp, .src0q, .src1q, ._, ._ }, @@ -11525,7 +15237,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_mut_gpr, .to_gpr, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .cmp, .src0q, .src1q, ._, ._ }, @@ -11549,7 +15261,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sia(1, .src0, .sub_size_div_8), ._, ._ }, @@ -11584,7 +15296,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sia(1, .src0, .sub_size_div_8), ._, ._ }, @@ -11619,7 +15331,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size_div_8), ._, ._ }, @@ -11652,7 +15364,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size_div_8), ._, ._ }, @@ -11680,7 +15392,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_sse, .to_sse, .none } }, }, - .dst_temps = .{.{ .rc = .sse }}, + .dst_temps = .{ .{ .rc = .sse }, .unused }, .each = .{ .once = &.{ .{ ._, .vp_b, .maxs, .dst0x, .src0x, .src1x, ._ }, } }, @@ -11696,7 +15408,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_mut_sse, .to_sse, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{ .{ ._, .p_b, .maxs, .dst0x, .src1x, ._, ._ }, } }, @@ -11712,7 +15424,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_mut_sse, .to_sse, .none } }, }, - .dst_temps = .{.{ .rc = .sse }}, + .dst_temps = .{ .{ .rc = .sse }, .unused }, .each = .{ .once = &.{ .{ ._, ._dqa, .mov, .dst0x, .src0x, ._, ._ }, .{ ._, .p_b, .cmpgt, .dst0x, .src1x, ._, ._ }, @@ -11732,7 +15444,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_sse, .to_sse, .none } }, }, - .dst_temps = .{.{ .rc = .sse }}, + .dst_temps = .{ .{ .rc = .sse }, .unused }, .each = .{ .once = &.{ .{ ._, .vp_b, .maxs, .dst0y, .src0y, .src1y, ._ }, } }, @@ -11757,7 +15469,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -11788,7 +15500,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -11819,7 +15531,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -11850,7 +15562,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -11885,7 +15597,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -11918,7 +15630,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -11951,7 +15663,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -11983,7 +15695,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -12007,7 +15719,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_mut_mmx, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_mut_mmx, .to_mmx, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{ .{ ._, .p_b, .maxu, .dst0q, .src1q, ._, ._ }, } }, @@ -12023,7 +15735,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_sse, .to_sse, .none } }, }, - .dst_temps = .{.{ .rc = .sse }}, + .dst_temps = .{ .{ .rc = .sse }, .unused }, .each = .{ .once = &.{ .{ ._, .vp_b, .maxu, .dst0x, .src0x, .src1x, ._ }, } }, @@ -12039,7 +15751,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_mut_sse, .to_sse, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{ .{ ._, .p_b, .maxu, .dst0x, .src1x, ._, ._ }, } }, @@ -12055,7 +15767,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_sse, .to_sse, .none } }, }, - .dst_temps = .{.{ .rc = .sse }}, + .dst_temps = .{ .{ .rc = .sse }, .unused }, .each = .{ .once = &.{ .{ ._, .vp_b, .maxu, .dst0y, .src0y, .src1y, ._ }, } }, @@ -12080,7 +15792,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -12111,7 +15823,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -12142,7 +15854,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -12173,7 +15885,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -12206,7 +15918,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -12239,7 +15951,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -12271,7 +15983,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -12295,7 +16007,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_mut_mmx, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_mut_mmx, .to_mmx, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{ .{ ._, .p_w, .maxs, .dst0q, .src1q, ._, ._ }, } }, @@ -12311,7 +16023,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_sse, .to_sse, .none } }, }, - .dst_temps = .{.{ .rc = .sse }}, + .dst_temps = .{ .{ .rc = .sse }, .unused }, .each = .{ .once = &.{ .{ ._, .vp_w, .maxs, .dst0x, .src0x, .src1x, ._ }, } }, @@ -12327,7 +16039,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_mut_sse, .to_sse, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{ .{ ._, .p_w, .maxs, .dst0x, .src1x, ._, ._ }, } }, @@ -12343,7 +16055,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_sse, .to_sse, .none } }, }, - .dst_temps = .{.{ .rc = .sse }}, + .dst_temps = .{ .{ .rc = .sse }, .unused }, .each = .{ .once = &.{ .{ ._, .vp_w, .maxs, .dst0y, .src0y, .src1y, ._ }, } }, @@ -12368,7 +16080,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -12399,7 +16111,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -12430,7 +16142,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -12461,7 +16173,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -12492,7 +16204,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -12516,7 +16228,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_sse, .to_sse, .none } }, }, - .dst_temps = .{.{ .rc = .sse }}, + .dst_temps = .{ .{ .rc = .sse }, .unused }, .each = .{ .once = &.{ .{ ._, .vp_w, .maxu, .dst0x, .src0x, .src1x, ._ }, } }, @@ -12532,7 +16244,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_mut_sse, .to_sse, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{ .{ ._, .p_w, .maxu, .dst0x, .src1x, ._, ._ }, } }, @@ -12548,7 +16260,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_mut_sse, .to_sse, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{ .{ ._, .p_w, .subus, .dst0x, .src1x, ._, ._ }, .{ ._, .p_w, .add, .dst0x, .src1x, ._, ._ }, @@ -12565,7 +16277,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_sse, .to_sse, .none } }, }, - .dst_temps = .{.{ .rc = .sse }}, + .dst_temps = .{ .{ .rc = .sse }, .unused }, .each = .{ .once = &.{ .{ ._, .vp_w, .maxu, .dst0y, .src0y, .src1y, ._ }, } }, @@ -12590,7 +16302,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -12621,7 +16333,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -12652,7 +16364,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -12683,7 +16395,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -12715,7 +16427,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -12746,7 +16458,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -12770,7 +16482,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_sse, .to_sse, .none } }, }, - .dst_temps = .{.{ .rc = .sse }}, + .dst_temps = .{ .{ .rc = .sse }, .unused }, .each = .{ .once = &.{ .{ ._, .vp_d, .maxs, .dst0x, .src0x, .src1x, ._ }, } }, @@ -12786,7 +16498,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_mut_sse, .to_sse, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{ .{ ._, .p_d, .maxs, .dst0x, .src1x, ._, ._ }, } }, @@ -12802,7 +16514,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_mut_sse, .to_sse, .none } }, }, - .dst_temps = .{.{ .rc = .sse }}, + .dst_temps = .{ .{ .rc = .sse }, .unused }, .each = .{ .once = &.{ .{ ._, ._dqa, .mov, .dst0x, .src0x, ._, ._ }, .{ ._, .p_d, .cmpgt, .dst0x, .src1x, ._, ._ }, @@ -12822,7 +16534,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_sse, .to_sse, .none } }, }, - .dst_temps = .{.{ .rc = .sse }}, + .dst_temps = .{ .{ .rc = .sse }, .unused }, .each = .{ .once = &.{ .{ ._, .vp_d, .maxs, .dst0y, .src0y, .src1y, ._ }, } }, @@ -12847,7 +16559,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -12878,7 +16590,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -12909,7 +16621,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -12940,7 +16652,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -12975,7 +16687,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -13006,7 +16718,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -13030,7 +16742,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_sse, .to_sse, .none } }, }, - .dst_temps = .{.{ .rc = .sse }}, + .dst_temps = .{ .{ .rc = .sse }, .unused }, .each = .{ .once = &.{ .{ ._, .vp_d, .maxu, .dst0x, .src0x, .src1x, ._ }, } }, @@ -13046,7 +16758,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_mut_sse, .to_sse, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{ .{ ._, .p_d, .maxu, .dst0x, .src1x, ._, ._ }, } }, @@ -13073,7 +16785,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .sse }}, + .dst_temps = .{ .{ .rc = .sse }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, .{ ._, ._dqa, .mov, .dst0x, .lea(.tmp0x), ._, ._ }, @@ -13097,7 +16809,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_sse, .to_sse, .none } }, }, - .dst_temps = .{.{ .rc = .sse }}, + .dst_temps = .{ .{ .rc = .sse }, .unused }, .each = .{ .once = &.{ .{ ._, .vp_d, .maxu, .dst0y, .src0y, .src1y, ._ }, } }, @@ -13122,7 +16834,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -13153,7 +16865,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -13184,7 +16896,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -13215,7 +16927,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, @@ -13256,7 +16968,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -13287,7 +16999,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -13309,7 +17021,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .patterns = &.{ .{ .src = .{ .to_sse, .to_sse, .none } }, }, - .dst_temps = .{.{ .rc = .sse }}, + .dst_temps = .{ .{ .rc = .sse }, .unused }, .each = .{ .once = &.{ .{ ._, .vp_q, .cmpgt, .dst0x, .src1x, .src0x, ._ }, .{ ._, .vp_b, .blendv, .dst0x, .src0x, .src1x, .dst0x }, @@ -13337,7 +17049,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{ .{ ._, ._dqa, .mov, .tmp0x, .src1x, ._, ._ }, .{ ._, .p_q, .cmpgt, .tmp0x, .src0x, ._, ._ }, @@ -13353,7 +17065,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .patterns = &.{ .{ .src = .{ .to_sse, .to_sse, .none } }, }, - .dst_temps = .{.{ .rc = .sse }}, + .dst_temps = .{ .{ .rc = .sse }, .unused }, .each = .{ .once = &.{ .{ ._, .vp_q, .cmpgt, .dst0y, .src1y, .src0y, ._ }, .{ ._, .vp_b, .blendv, .dst0y, .src0y, .src1y, .dst0y }, @@ -13379,7 +17091,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -13412,7 +17124,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -13445,7 +17157,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -13479,7 +17191,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -13511,7 +17223,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -13546,7 +17258,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .sse }}, + .dst_temps = .{ .{ .rc = .sse }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, .{ ._, .v_, .movddup, .tmp2x, .lea(.tmp0q), ._, ._ }, @@ -13578,7 +17290,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, .{ ._, ._, .movddup, .tmp2x, .lea(.tmp0q), ._, ._ }, @@ -13611,7 +17323,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .sse }}, + .dst_temps = .{ .{ .rc = .sse }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, .{ ._, .vp_q, .broadcast, .tmp2y, .lea(.tmp0q), ._, ._ }, @@ -13641,7 +17353,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, @@ -13678,7 +17390,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, @@ -13715,7 +17427,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, @@ -13754,7 +17466,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -13786,7 +17498,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -13815,7 +17527,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -13854,7 +17566,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -13893,7 +17605,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -13930,7 +17642,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -13971,7 +17683,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ }, .{ ._, .v_ps, .cvtph2, .tmp0x, .src1q, ._, ._ }, @@ -14002,7 +17714,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, @@ -14031,7 +17743,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ }, .{ ._, .v_ps, .cvtph2, .tmp0x, .src1q, ._, ._ }, @@ -14064,7 +17776,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .v_ps, .cvtph2, .dst0y, .src0x, ._, ._ }, .{ ._, .v_ps, .cvtph2, .tmp0y, .src1x, ._, ._ }, @@ -14094,7 +17806,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -14129,7 +17841,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -14163,7 +17875,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -14198,7 +17910,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -14234,7 +17946,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -14272,7 +17984,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .v_ss, .cmp, .tmp0x, .src0x, .src0d, .vp(.unord) }, .{ ._, .v_ss, .max, .dst0x, .src1x, .src0d, ._ }, @@ -14288,7 +18000,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .patterns = &.{ .{ .src = .{ .{ .to_reg = .xmm0 }, .to_sse, .none } }, }, - .dst_temps = .{.{ .rc = .sse }}, + .dst_temps = .{ .{ .rc = .sse }, .unused }, .each = .{ .once = &.{ .{ ._, ._ps, .mova, .dst0x, .src1x, ._, ._ }, .{ ._, ._ss, .max, .dst0x, .src0d, ._, ._ }, @@ -14316,7 +18028,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{ .{ ._, ._ps, .mova, .tmp0x, .src1x, ._, ._ }, .{ ._, ._ss, .max, .tmp0x, .src0d, ._, ._ }, @@ -14346,7 +18058,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .v_ps, .cmp, .tmp0x, .src0x, .src0x, .vp(.unord) }, .{ ._, .v_ps, .max, .dst0x, .src1x, .src0x, ._ }, @@ -14364,7 +18076,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .{ .to_reg = .xmm0 }, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .{ .to_reg = .xmm0 }, .to_sse, .none } }, }, - .dst_temps = .{.{ .rc = .sse }}, + .dst_temps = .{ .{ .rc = .sse }, .unused }, .each = .{ .once = &.{ .{ ._, ._ps, .mova, .dst0x, .src1x, ._, ._ }, .{ ._, ._ps, .max, .dst0x, .src0x, ._, ._ }, @@ -14394,7 +18106,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{ .{ ._, ._ps, .mova, .tmp0x, .src1x, ._, ._ }, .{ ._, ._ps, .max, .tmp0x, .src0x, ._, ._ }, @@ -14424,7 +18136,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .v_ps, .cmp, .tmp0y, .src0y, .src0y, .vp(.unord) }, .{ ._, .v_ps, .max, .dst0y, .src1y, .src0y, ._ }, @@ -14451,7 +18163,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -14485,7 +18197,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -14520,7 +18232,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -14557,7 +18269,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .v_sd, .cmp, .tmp0x, .src0x, .src0q, .vp(.unord) }, .{ ._, .v_sd, .max, .dst0x, .src1x, .src0q, ._ }, @@ -14573,7 +18285,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .patterns = &.{ .{ .src = .{ .{ .to_reg = .xmm0 }, .to_sse, .none } }, }, - .dst_temps = .{.{ .rc = .sse }}, + .dst_temps = .{ .{ .rc = .sse }, .unused }, .each = .{ .once = &.{ .{ ._, ._pd, .mova, .dst0x, .src1x, ._, ._ }, .{ ._, ._sd, .max, .dst0x, .src0q, ._, ._ }, @@ -14601,7 +18313,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{ .{ ._, ._pd, .mova, .tmp0x, .src1x, ._, ._ }, .{ ._, ._sd, .max, .tmp0x, .src0q, ._, ._ }, @@ -14632,7 +18344,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, @@ -14658,7 +18370,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .v_pd, .cmp, .tmp0x, .src0x, .src0x, .vp(.unord) }, .{ ._, .v_pd, .max, .dst0x, .src1x, .src0x, ._ }, @@ -14676,7 +18388,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .{ .to_reg = .xmm0 }, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .{ .to_reg = .xmm0 }, .to_sse, .none } }, }, - .dst_temps = .{.{ .rc = .sse }}, + .dst_temps = .{ .{ .rc = .sse }, .unused }, .each = .{ .once = &.{ .{ ._, ._pd, .mova, .dst0x, .src1x, ._, ._ }, .{ ._, ._pd, .max, .dst0x, .src0x, ._, ._ }, @@ -14706,7 +18418,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{ .{ ._, ._pd, .mova, .tmp0x, .src1x, ._, ._ }, .{ ._, ._pd, .max, .tmp0x, .src0x, ._, ._ }, @@ -14736,7 +18448,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .v_pd, .cmp, .tmp0y, .src0y, .src0y, .vp(.unord) }, .{ ._, .v_pd, .max, .dst0y, .src1y, .src0y, ._ }, @@ -14763,7 +18475,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -14797,7 +18509,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -14832,7 +18544,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -14870,7 +18582,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -14906,7 +18618,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src1, .rc = .x87 } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src1, .rc = .x87 } }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, .f_, .ld, .src0t, ._, ._, ._ }, @@ -14941,7 +18653,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src1, .rc = .x87 } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src1, .rc = .x87 } }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, .f_, .ld, .src0t, ._, ._, ._ }, @@ -14982,7 +18694,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src1, .rc = .x87 } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src1, .rc = .x87 } }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, .f_, .ld, .src0t, ._, ._, ._ }, @@ -15021,7 +18733,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -15059,7 +18771,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -15103,7 +18815,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -15148,7 +18860,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, @@ -15175,7 +18887,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -15208,7 +18920,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -15241,7 +18953,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -15273,7 +18985,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .patterns = &.{ .{ .src = .{ .to_mut_gpr, .to_gpr, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .cmp, .src0b, .src1b, ._, ._ }, @@ -15286,7 +18998,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_mut_gpr, .to_gpr, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .cmp, .src0b, .src1b, ._, ._ }, @@ -15299,7 +19011,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .patterns = &.{ .{ .src = .{ .to_mut_gpr, .to_gpr, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .cmp, .src0b, .src1b, ._, ._ }, @@ -15312,7 +19024,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_mut_gpr, .to_gpr, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .cmp, .src0b, .src1b, ._, ._ }, @@ -15327,7 +19039,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_mut_gpr, .to_gpr, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .cmp, .src0w, .src1w, ._, ._ }, @@ -15340,7 +19052,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_mut_gpr, .to_gpr, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .cmp, .src0w, .src1w, ._, ._ }, @@ -15355,7 +19067,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_mut_gpr, .to_gpr, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .cmp, .src0w, .src1w, ._, ._ }, @@ -15368,7 +19080,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_mut_gpr, .to_gpr, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .cmp, .src0w, .src1w, ._, ._ }, @@ -15383,7 +19095,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_mut_gpr, .to_gpr, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .cmp, .src0d, .src1d, ._, ._ }, @@ -15396,7 +19108,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_mut_gpr, .to_gpr, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .cmp, .src0d, .src1d, ._, ._ }, @@ -15411,7 +19123,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_mut_gpr, .to_gpr, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .cmp, .src0d, .src1d, ._, ._ }, @@ -15424,7 +19136,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_mut_gpr, .to_gpr, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .cmp, .src0d, .src1d, ._, ._ }, @@ -15439,7 +19151,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_mut_gpr, .to_gpr, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .cmp, .src0q, .src1q, ._, ._ }, @@ -15453,7 +19165,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_mut_gpr, .to_gpr, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .cmp, .src0q, .src1q, ._, ._ }, @@ -15468,7 +19180,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_mut_gpr, .to_gpr, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .cmp, .src0q, .src1q, ._, ._ }, @@ -15482,7 +19194,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_mut_gpr, .to_gpr, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .cmp, .src0q, .src1q, ._, ._ }, @@ -15506,7 +19218,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sia(1, .src0, .sub_size_div_8), ._, ._ }, @@ -15541,7 +19253,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sia(1, .src0, .sub_size_div_8), ._, ._ }, @@ -15576,7 +19288,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size_div_8), ._, ._ }, @@ -15609,7 +19321,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size_div_8), ._, ._ }, @@ -15637,7 +19349,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_sse, .to_sse, .none } }, }, - .dst_temps = .{.{ .rc = .sse }}, + .dst_temps = .{ .{ .rc = .sse }, .unused }, .each = .{ .once = &.{ .{ ._, .vp_b, .mins, .dst0x, .src0x, .src1x, ._ }, } }, @@ -15653,7 +19365,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_mut_sse, .to_sse, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{ .{ ._, .p_b, .mins, .dst0x, .src1x, ._, ._ }, } }, @@ -15669,7 +19381,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_mut_sse, .to_sse, .none } }, }, - .dst_temps = .{.{ .rc = .sse }}, + .dst_temps = .{ .{ .rc = .sse }, .unused }, .each = .{ .once = &.{ .{ ._, ._dqa, .mov, .dst0x, .src1x, ._, ._ }, .{ ._, .p_b, .cmpgt, .dst0x, .src0x, ._, ._ }, @@ -15689,7 +19401,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_sse, .to_sse, .none } }, }, - .dst_temps = .{.{ .rc = .sse }}, + .dst_temps = .{ .{ .rc = .sse }, .unused }, .each = .{ .once = &.{ .{ ._, .vp_b, .mins, .dst0y, .src0y, .src1y, ._ }, } }, @@ -15714,7 +19426,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -15745,7 +19457,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -15776,7 +19488,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -15807,7 +19519,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -15842,7 +19554,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -15875,7 +19587,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -15908,7 +19620,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -15940,7 +19652,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -15964,7 +19676,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_mut_mmx, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_mut_mmx, .to_mmx, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{ .{ ._, .p_b, .minu, .dst0q, .src1q, ._, ._ }, } }, @@ -15980,7 +19692,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_sse, .to_sse, .none } }, }, - .dst_temps = .{.{ .rc = .sse }}, + .dst_temps = .{ .{ .rc = .sse }, .unused }, .each = .{ .once = &.{ .{ ._, .vp_b, .minu, .dst0x, .src0x, .src1x, ._ }, } }, @@ -15996,7 +19708,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_mut_sse, .to_sse, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{ .{ ._, .p_b, .minu, .dst0x, .src1x, ._, ._ }, } }, @@ -16012,7 +19724,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_sse, .to_sse, .none } }, }, - .dst_temps = .{.{ .rc = .sse }}, + .dst_temps = .{ .{ .rc = .sse }, .unused }, .each = .{ .once = &.{ .{ ._, .vp_b, .minu, .dst0y, .src0y, .src1y, ._ }, } }, @@ -16037,7 +19749,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -16068,7 +19780,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -16099,7 +19811,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -16130,7 +19842,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -16163,7 +19875,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -16196,7 +19908,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -16228,7 +19940,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -16252,7 +19964,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_mut_mmx, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_mut_mmx, .to_mmx, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{ .{ ._, .p_w, .mins, .dst0q, .src1q, ._, ._ }, } }, @@ -16268,7 +19980,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_sse, .to_sse, .none } }, }, - .dst_temps = .{.{ .rc = .sse }}, + .dst_temps = .{ .{ .rc = .sse }, .unused }, .each = .{ .once = &.{ .{ ._, .vp_w, .mins, .dst0x, .src0x, .src1x, ._ }, } }, @@ -16284,7 +19996,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_mut_sse, .to_sse, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{ .{ ._, .p_w, .mins, .dst0x, .src1x, ._, ._ }, } }, @@ -16300,7 +20012,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_sse, .to_sse, .none } }, }, - .dst_temps = .{.{ .rc = .sse }}, + .dst_temps = .{ .{ .rc = .sse }, .unused }, .each = .{ .once = &.{ .{ ._, .vp_w, .mins, .dst0y, .src0y, .src1y, ._ }, } }, @@ -16325,7 +20037,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -16356,7 +20068,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -16387,7 +20099,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -16418,7 +20130,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -16449,7 +20161,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -16473,7 +20185,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_sse, .to_sse, .none } }, }, - .dst_temps = .{.{ .rc = .sse }}, + .dst_temps = .{ .{ .rc = .sse }, .unused }, .each = .{ .once = &.{ .{ ._, .vp_w, .minu, .dst0x, .src0x, .src1x, ._ }, } }, @@ -16489,7 +20201,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_mut_sse, .to_sse, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{ .{ ._, .p_w, .minu, .dst0x, .src1x, ._, ._ }, } }, @@ -16505,7 +20217,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_mut_sse, .to_sse, .none } }, }, - .dst_temps = .{.{ .rc = .sse }}, + .dst_temps = .{ .{ .rc = .sse }, .unused }, .each = .{ .once = &.{ .{ ._, ._dqa, .mov, .dst0x, .src0x, ._, ._ }, .{ ._, .p_w, .subus, .src0x, .src1x, ._, ._ }, @@ -16523,7 +20235,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_sse, .to_sse, .none } }, }, - .dst_temps = .{.{ .rc = .sse }}, + .dst_temps = .{ .{ .rc = .sse }, .unused }, .each = .{ .once = &.{ .{ ._, .vp_w, .minu, .dst0y, .src0y, .src1y, ._ }, } }, @@ -16548,7 +20260,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -16579,7 +20291,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -16610,7 +20322,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -16641,7 +20353,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -16674,7 +20386,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -16705,7 +20417,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -16729,7 +20441,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_sse, .to_sse, .none } }, }, - .dst_temps = .{.{ .rc = .sse }}, + .dst_temps = .{ .{ .rc = .sse }, .unused }, .each = .{ .once = &.{ .{ ._, .vp_d, .mins, .dst0x, .src0x, .src1x, ._ }, } }, @@ -16745,7 +20457,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_mut_sse, .to_sse, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{ .{ ._, .p_d, .mins, .dst0x, .src1x, ._, ._ }, } }, @@ -16761,7 +20473,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_mut_sse, .to_sse, .none } }, }, - .dst_temps = .{.{ .rc = .sse }}, + .dst_temps = .{ .{ .rc = .sse }, .unused }, .each = .{ .once = &.{ .{ ._, ._dqa, .mov, .dst0x, .src1x, ._, ._ }, .{ ._, .p_d, .cmpgt, .dst0x, .src0x, ._, ._ }, @@ -16781,7 +20493,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_sse, .to_sse, .none } }, }, - .dst_temps = .{.{ .rc = .sse }}, + .dst_temps = .{ .{ .rc = .sse }, .unused }, .each = .{ .once = &.{ .{ ._, .vp_d, .mins, .dst0y, .src0y, .src1y, ._ }, } }, @@ -16806,7 +20518,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -16837,7 +20549,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -16868,7 +20580,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -16899,7 +20611,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -16934,7 +20646,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -16965,7 +20677,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -16989,7 +20701,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_sse, .to_sse, .none } }, }, - .dst_temps = .{.{ .rc = .sse }}, + .dst_temps = .{ .{ .rc = .sse }, .unused }, .each = .{ .once = &.{ .{ ._, .vp_d, .minu, .dst0x, .src0x, .src1x, ._ }, } }, @@ -17005,7 +20717,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_mut_sse, .to_sse, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{ .{ ._, .p_d, .minu, .dst0x, .src1x, ._, ._ }, } }, @@ -17032,7 +20744,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .sse }}, + .dst_temps = .{ .{ .rc = .sse }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, .{ ._, ._dqa, .mov, .dst0x, .lea(.tmp0x), ._, ._ }, @@ -17056,7 +20768,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_sse, .to_sse, .none } }, }, - .dst_temps = .{.{ .rc = .sse }}, + .dst_temps = .{ .{ .rc = .sse }, .unused }, .each = .{ .once = &.{ .{ ._, .vp_d, .minu, .dst0y, .src0y, .src1y, ._ }, } }, @@ -17081,7 +20793,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -17112,7 +20824,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -17143,7 +20855,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -17174,7 +20886,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, @@ -17215,7 +20927,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -17246,7 +20958,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -17270,7 +20982,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_sse, .to_sse, .none } }, }, - .dst_temps = .{.{ .rc = .sse }}, + .dst_temps = .{ .{ .rc = .sse }, .unused }, .each = .{ .once = &.{ .{ ._, .vp_q, .cmpgt, .dst0x, .src0x, .src1x, ._ }, .{ ._, .vp_b, .blendv, .dst0x, .src0x, .src1x, .dst0x }, @@ -17298,7 +21010,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{ .{ ._, ._dqa, .mov, .tmp0x, .src0x, ._, ._ }, .{ ._, .p_q, .cmpgt, .tmp0x, .src1x, ._, ._ }, @@ -17316,7 +21028,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_sse, .to_sse, .none } }, }, - .dst_temps = .{.{ .rc = .sse }}, + .dst_temps = .{ .{ .rc = .sse }, .unused }, .each = .{ .once = &.{ .{ ._, .vp_q, .cmpgt, .dst0y, .src0y, .src1y, ._ }, .{ ._, .vp_b, .blendv, .dst0y, .src0y, .src1y, .dst0y }, @@ -17342,7 +21054,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -17375,7 +21087,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -17408,7 +21120,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -17442,7 +21154,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -17474,7 +21186,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -17509,7 +21221,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .sse }}, + .dst_temps = .{ .{ .rc = .sse }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, .{ ._, .v_, .movddup, .tmp2x, .lea(.tmp0q), ._, ._ }, @@ -17541,7 +21253,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, .{ ._, ._, .movddup, .tmp2x, .lea(.tmp0q), ._, ._ }, @@ -17574,7 +21286,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .sse }}, + .dst_temps = .{ .{ .rc = .sse }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, .{ ._, .vp_q, .broadcast, .tmp2y, .lea(.tmp0q), ._, ._ }, @@ -17604,7 +21316,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, @@ -17641,7 +21353,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, @@ -17678,7 +21390,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, @@ -17717,7 +21429,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -17749,7 +21461,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -17778,7 +21490,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -17817,7 +21529,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -17856,7 +21568,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -17893,7 +21605,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -17934,7 +21646,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ }, .{ ._, .v_ps, .cvtph2, .tmp0x, .src1q, ._, ._ }, @@ -17965,7 +21677,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, @@ -17994,7 +21706,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ }, .{ ._, .v_ps, .cvtph2, .tmp0x, .src1q, ._, ._ }, @@ -18027,7 +21739,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .v_ps, .cvtph2, .dst0y, .src0x, ._, ._ }, .{ ._, .v_ps, .cvtph2, .tmp0y, .src1x, ._, ._ }, @@ -18057,7 +21769,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -18092,7 +21804,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -18126,7 +21838,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -18161,7 +21873,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -18197,7 +21909,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -18235,7 +21947,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .v_ss, .cmp, .tmp0x, .src0x, .src0d, .vp(.unord) }, .{ ._, .v_ss, .min, .dst0x, .src1x, .src0d, ._ }, @@ -18251,7 +21963,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .patterns = &.{ .{ .src = .{ .{ .to_reg = .xmm0 }, .to_sse, .none } }, }, - .dst_temps = .{.{ .rc = .sse }}, + .dst_temps = .{ .{ .rc = .sse }, .unused }, .each = .{ .once = &.{ .{ ._, ._ps, .mova, .dst0x, .src1x, ._, ._ }, .{ ._, ._ss, .min, .dst0x, .src0d, ._, ._ }, @@ -18279,7 +21991,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{ .{ ._, ._ps, .mova, .tmp0x, .src1x, ._, ._ }, .{ ._, ._ss, .min, .tmp0x, .src0d, ._, ._ }, @@ -18309,7 +22021,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .v_ps, .cmp, .tmp0x, .src0x, .src0x, .vp(.unord) }, .{ ._, .v_ps, .min, .dst0x, .src1x, .src0x, ._ }, @@ -18327,7 +22039,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .{ .to_reg = .xmm0 }, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .{ .to_reg = .xmm0 }, .to_sse, .none } }, }, - .dst_temps = .{.{ .rc = .sse }}, + .dst_temps = .{ .{ .rc = .sse }, .unused }, .each = .{ .once = &.{ .{ ._, ._ps, .mova, .dst0x, .src1x, ._, ._ }, .{ ._, ._ps, .min, .dst0x, .src0x, ._, ._ }, @@ -18357,7 +22069,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{ .{ ._, ._ps, .mova, .tmp0x, .src1x, ._, ._ }, .{ ._, ._ps, .min, .tmp0x, .src0x, ._, ._ }, @@ -18387,7 +22099,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .v_ps, .cmp, .tmp0y, .src0y, .src0y, .vp(.unord) }, .{ ._, .v_ps, .min, .dst0y, .src1y, .src0y, ._ }, @@ -18414,7 +22126,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -18448,7 +22160,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -18483,7 +22195,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -18520,7 +22232,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .v_sd, .cmp, .tmp0x, .src0x, .src0q, .vp(.unord) }, .{ ._, .v_sd, .min, .dst0x, .src1x, .src0q, ._ }, @@ -18536,7 +22248,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .patterns = &.{ .{ .src = .{ .{ .to_reg = .xmm0 }, .to_sse, .none } }, }, - .dst_temps = .{.{ .rc = .sse }}, + .dst_temps = .{ .{ .rc = .sse }, .unused }, .each = .{ .once = &.{ .{ ._, ._pd, .mova, .dst0x, .src1x, ._, ._ }, .{ ._, ._sd, .min, .dst0x, .src0q, ._, ._ }, @@ -18564,7 +22276,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{ .{ ._, ._pd, .mova, .tmp0x, .src1x, ._, ._ }, .{ ._, ._sd, .min, .tmp0x, .src0q, ._, ._ }, @@ -18595,7 +22307,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, @@ -18621,7 +22333,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .v_pd, .cmp, .tmp0x, .src0x, .src0x, .vp(.unord) }, .{ ._, .v_pd, .min, .dst0x, .src1x, .src0x, ._ }, @@ -18639,7 +22351,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .{ .to_reg = .xmm0 }, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .{ .to_reg = .xmm0 }, .to_sse, .none } }, }, - .dst_temps = .{.{ .rc = .sse }}, + .dst_temps = .{ .{ .rc = .sse }, .unused }, .each = .{ .once = &.{ .{ ._, ._pd, .mova, .dst0x, .src1x, ._, ._ }, .{ ._, ._pd, .min, .dst0x, .src0x, ._, ._ }, @@ -18669,7 +22381,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{ .{ ._, ._pd, .mova, .tmp0x, .src1x, ._, ._ }, .{ ._, ._pd, .min, .tmp0x, .src0x, ._, ._ }, @@ -18699,7 +22411,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .v_pd, .cmp, .tmp0y, .src0y, .src0y, .vp(.unord) }, .{ ._, .v_pd, .min, .dst0y, .src1y, .src0y, ._ }, @@ -18726,7 +22438,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -18760,7 +22472,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -18795,7 +22507,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -18833,7 +22545,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -18869,7 +22581,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src1, .rc = .x87 } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src1, .rc = .x87 } }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, .f_, .ld, .src0t, ._, ._, ._ }, @@ -18902,7 +22614,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src1, .rc = .x87 } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src1, .rc = .x87 } }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, .f_, .ld, .src0t, ._, ._, ._ }, @@ -18941,7 +22653,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src1, .rc = .x87 } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src1, .rc = .x87 } }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, .f_, .ld, .src0t, ._, ._, ._ }, @@ -18978,7 +22690,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -19014,7 +22726,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -19056,7 +22768,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -19099,7 +22811,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, @@ -19126,7 +22838,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -19159,7 +22871,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -19192,7 +22904,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -19262,7 +22974,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_mut_gpr, .to_gpr, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, mir_tag, .dst0b, .src1b, ._, ._ }, @@ -19280,7 +22992,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_mut_gpr, .to_gpr, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, mir_tag, .dst0w, .src1w, ._, ._ }, @@ -19298,7 +23010,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_mut_gpr, .to_gpr, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, mir_tag, .dst0d, .src1d, ._, ._ }, @@ -19317,7 +23029,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_mut_gpr, .to_gpr, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, mir_tag, .dst0q, .src1q, ._, ._ }, @@ -19330,7 +23042,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_mut_mm, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_mut_mm, .to_mm, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{ .{ ._, .p_, mir_tag, .dst0q, .src1q, ._, ._ }, } }, @@ -19342,7 +23054,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_xmm, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_xmm, .to_xmm, .none } }, }, - .dst_temps = .{.{ .rc = .sse }}, + .dst_temps = .{ .{ .rc = .sse }, .unused }, .each = .{ .once = &.{ .{ ._, .vp_, mir_tag, .dst0x, .src0x, .src1x, ._ }, } }, @@ -19354,7 +23066,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_mut_xmm, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_mut_xmm, .to_xmm, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{ .{ ._, .p_, mir_tag, .dst0x, .src1x, ._, ._ }, } }, @@ -19366,7 +23078,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_mut_xmm, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_mut_xmm, .to_xmm, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{ .{ ._, ._ps, mir_tag, .dst0x, .src1x, ._, ._ }, } }, @@ -19378,7 +23090,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_ymm, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_ymm, .to_ymm, .none } }, }, - .dst_temps = .{.{ .rc = .sse }}, + .dst_temps = .{ .{ .rc = .sse }, .unused }, .each = .{ .once = &.{ .{ ._, .vp_, mir_tag, .dst0y, .src0y, .src1y, ._ }, } }, @@ -19390,7 +23102,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_ymm, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_ymm, .to_ymm, .none } }, }, - .dst_temps = .{.{ .rc = .sse }}, + .dst_temps = .{ .{ .rc = .sse }, .unused }, .each = .{ .once = &.{ .{ ._, .v_pd, mir_tag, .dst0y, .src0y, .src1y, ._ }, } }, @@ -19411,7 +23123,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -19438,7 +23150,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -19465,7 +23177,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -19492,7 +23204,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -19519,7 +23231,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -19546,7 +23258,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -19572,7 +23284,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -19604,7 +23316,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mut_mem, .none, .none } }, .{ .src = .{ .to_mut_gpr, .none, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .not, .dst0b, ._, ._, ._ }, } }, @@ -19614,7 +23326,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mut_mem, .none, .none } }, .{ .src = .{ .to_mut_gpr, .none, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .xor, .dst0b, .sa(.src0, .add_umax), ._, ._ }, @@ -19625,7 +23337,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mut_mem, .none, .none } }, .{ .src = .{ .to_mut_gpr, .none, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .not, .dst0w, ._, ._, ._ }, } }, @@ -19635,7 +23347,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mut_mem, .none, .none } }, .{ .src = .{ .to_mut_gpr, .none, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .xor, .dst0w, .sa(.src0, .add_umax), ._, ._ }, @@ -19646,7 +23358,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mut_mem, .none, .none } }, .{ .src = .{ .to_mut_gpr, .none, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .not, .dst0d, ._, ._, ._ }, } }, @@ -19656,7 +23368,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mut_mem, .none, .none } }, .{ .src = .{ .to_mut_gpr, .none, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .xor, .dst0d, .sa(.src0, .add_umax), ._, ._ }, @@ -19668,7 +23380,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mut_mem, .none, .none } }, .{ .src = .{ .to_mut_gpr, .none, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .not, .dst0q, ._, ._, ._ }, } }, @@ -19679,7 +23391,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_gpr, .none, .none } }, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .mov, .dst0q, .ua(.src0, .add_umax), ._, ._ }, .{ ._, ._, .xor, .dst0q, .src0q, ._, ._ }, @@ -19691,7 +23403,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_mm, .none, .none } }, }, - .dst_temps = .{.{ .rc = .mmx }}, + .dst_temps = .{ .{ .rc = .mmx }, .unused }, .each = .{ .once = &.{ .{ ._, .p_d, .cmpeq, .dst0q, .dst0q, ._, ._ }, .{ ._, .p_, .xor, .dst0q, .src0q, ._, ._ }, @@ -19713,7 +23425,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, .{ ._, .p_, .xor, .dst0q, .lea(.tmp0q), ._, ._ }, @@ -19725,7 +23437,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_xmm, .none, .none } }, }, - .dst_temps = .{.{ .rc = .sse }}, + .dst_temps = .{ .{ .rc = .sse }, .unused }, .each = .{ .once = &.{ .{ ._, .vp_q, .cmpeq, .dst0x, .dst0x, .dst0x, ._ }, .{ ._, .vp_, .xor, .dst0x, .dst0x, .src0x, ._ }, @@ -19747,7 +23459,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .sse }}, + .dst_temps = .{ .{ .rc = .sse }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, .{ ._, .vp_, .xor, .dst0x, .src0x, .lea(.tmp0x), ._ }, @@ -19759,7 +23471,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_xmm, .none, .none } }, }, - .dst_temps = .{.{ .rc = .sse }}, + .dst_temps = .{ .{ .rc = .sse }, .unused }, .each = .{ .once = &.{ .{ ._, .p_d, .cmpeq, .dst0x, .dst0x, ._, ._ }, .{ ._, .p_, .xor, .dst0x, .src0x, ._, ._ }, @@ -19781,7 +23493,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, .{ ._, .p_, .xor, .dst0x, .lea(.tmp0x), ._, ._ }, @@ -19803,7 +23515,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, .{ ._, ._ps, .xor, .dst0x, .lea(.tmp0x), ._, ._ }, @@ -19815,7 +23527,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_ymm, .none, .none } }, }, - .dst_temps = .{.{ .rc = .sse }}, + .dst_temps = .{ .{ .rc = .sse }, .unused }, .each = .{ .once = &.{ .{ ._, .vp_q, .cmpeq, .dst0y, .dst0y, .dst0y, ._ }, .{ ._, .vp_, .xor, .dst0y, .dst0y, .src0y, ._ }, @@ -19837,7 +23549,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .sse }}, + .dst_temps = .{ .{ .rc = .sse }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, .{ ._, .vp_, .xor, .dst0y, .src0y, .lea(.tmp0y), ._ }, @@ -19849,7 +23561,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_ymm, .none, .none } }, }, - .dst_temps = .{.{ .rc = .sse }}, + .dst_temps = .{ .{ .rc = .sse }, .unused }, .each = .{ .once = &.{ .{ ._, .v_pd, .cmp, .dst0y, .dst0y, .dst0y, .vp(.true) }, .{ ._, .v_pd, .xor, .dst0y, .dst0y, .src0y, ._ }, @@ -19871,7 +23583,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .sse }}, + .dst_temps = .{ .{ .rc = .sse }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, .{ ._, .v_pd, .xor, .dst0y, .src0y, .lea(.tmp0y), ._ }, @@ -19893,7 +23605,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sia(16, .src0, .sub_size), ._, ._ }, @@ -19922,7 +23634,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -19949,7 +23661,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sia(16, .src0, .sub_size), ._, ._ }, @@ -19978,7 +23690,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -20005,7 +23717,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -20032,7 +23744,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -20060,7 +23772,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -20086,7 +23798,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -20113,7 +23825,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sia(16, .src0, .sub_size), ._, ._ }, @@ -20140,7 +23852,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sia(16, .src0, .sub_size), ._, ._ }, @@ -20172,7 +23884,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sia(16, .src0, .sub_size), ._, ._ }, @@ -20199,7 +23911,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sia(8, .src0, .sub_size), ._, ._ }, @@ -20227,7 +23939,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sia(8, .src0, .sub_size), ._, ._ }, @@ -20253,7 +23965,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sia(8, .src0, .sub_size), ._, ._ }, @@ -20284,7 +23996,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sia(16, .src0, .sub_size), ._, ._ }, @@ -20311,7 +24023,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sia(16, .src0, .sub_size), ._, ._ }, @@ -20343,7 +24055,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sia(8, .src0, .sub_size), ._, ._ }, @@ -20369,7 +24081,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sia(8, .src0, .sub_size), ._, ._ }, @@ -20400,7 +24112,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sia(16, .src0, .sub_size), ._, ._ }, @@ -20428,7 +24140,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sia(16, .src0, .sub_size), ._, ._ }, @@ -20459,7 +24171,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sia(8, .src0, .sub_size), ._, ._ }, @@ -20486,7 +24198,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sia(8, .src0, .sub_size), ._, ._ }, @@ -20506,7 +24218,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_mm, .none, .none } }, }, - .dst_temps = .{.{ .rc = .mmx }}, + .dst_temps = .{ .{ .rc = .mmx }, .unused }, .each = .{ .once = &.{ .{ ._, .p_d, .cmpeq, .dst0q, .dst0q, ._, ._ }, .{ ._, .p_, .xor, .dst0q, .src0q, ._, ._ }, @@ -20528,7 +24240,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, .{ ._, .p_, .xor, .dst0q, .lea(.tmp0q), ._, ._ }, @@ -20540,7 +24252,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_xmm, .none, .none } }, }, - .dst_temps = .{.{ .rc = .sse }}, + .dst_temps = .{ .{ .rc = .sse }, .unused }, .each = .{ .once = &.{ .{ ._, .vp_q, .cmpeq, .dst0x, .dst0x, .dst0x, ._ }, .{ ._, .vp_, .xor, .dst0x, .dst0x, .src0x, ._ }, @@ -20562,7 +24274,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .sse }}, + .dst_temps = .{ .{ .rc = .sse }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, .{ ._, .vp_, .xor, .dst0x, .src0x, .lea(.tmp0x), ._ }, @@ -20574,7 +24286,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_xmm, .none, .none } }, }, - .dst_temps = .{.{ .rc = .sse }}, + .dst_temps = .{ .{ .rc = .sse }, .unused }, .each = .{ .once = &.{ .{ ._, .p_d, .cmpeq, .dst0x, .dst0x, ._, ._ }, .{ ._, .p_, .xor, .dst0x, .src0x, ._, ._ }, @@ -20596,7 +24308,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, .{ ._, .p_, .xor, .dst0x, .lea(.tmp0x), ._, ._ }, @@ -20618,7 +24330,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, .{ ._, ._ps, .xor, .dst0x, .lea(.tmp0x), ._, ._ }, @@ -20630,7 +24342,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_ymm, .none, .none } }, }, - .dst_temps = .{.{ .rc = .sse }}, + .dst_temps = .{ .{ .rc = .sse }, .unused }, .each = .{ .once = &.{ .{ ._, .vp_q, .cmpeq, .dst0y, .dst0y, .dst0y, ._ }, .{ ._, .vp_, .xor, .dst0y, .dst0y, .src0y, ._ }, @@ -20652,7 +24364,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .sse }}, + .dst_temps = .{ .{ .rc = .sse }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, .{ ._, .vp_, .xor, .dst0y, .src0y, .lea(.tmp0y), ._ }, @@ -20664,7 +24376,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_ymm, .none, .none } }, }, - .dst_temps = .{.{ .rc = .sse }}, + .dst_temps = .{ .{ .rc = .sse }, .unused }, .each = .{ .once = &.{ .{ ._, .v_pd, .cmp, .dst0y, .dst0y, .dst0y, .vp(.true) }, .{ ._, .v_pd, .xor, .dst0y, .dst0y, .src0y, ._ }, @@ -20686,7 +24398,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .sse }}, + .dst_temps = .{ .{ .rc = .sse }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, .{ ._, .v_pd, .xor, .dst0y, .src0y, .lea(.tmp0y), ._ }, @@ -20707,7 +24419,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .each = .{ .once = &.{ .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, .{ ._, ._, .lea, .tmp1p, .mem(.tmp3), ._, ._ }, @@ -20733,7 +24445,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .each = .{ .once = &.{ .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, .{ ._, ._, .lea, .tmp1p, .mem(.tmp3), ._, ._ }, @@ -20815,7 +24527,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mut_mem, .none, .none } }, .{ .src = .{ .to_mut_gpr, .none, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .add, .dst0b, .si(1), ._, ._ }, @@ -20826,7 +24538,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mut_mem, .none, .none } }, .{ .src = .{ .to_mut_gpr, .none, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._c, .in, .dst0b, ._, ._, ._ }, @@ -20837,7 +24549,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mut_mem, .none, .none } }, .{ .src = .{ .to_mut_gpr, .none, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .xor, .dst0b, .si(1), ._, ._ }, @@ -20849,7 +24561,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_gpr, .none, .none } }, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .movzx, .dst0d, .src0b, ._, ._ }, @@ -20863,7 +24575,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_gpr, .none, .none } }, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .movzx, .dst0d, .src0b, ._, ._ }, @@ -20877,7 +24589,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .patterns = &.{ .{ .src = .{ .to_mut_gpr, .none, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .lzcnt, .dst0w, .src0w, ._, ._ }, @@ -20889,7 +24601,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_gpr, .none, .none } }, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .lzcnt, .dst0w, .src0w, ._, ._ }, @@ -20900,7 +24612,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .patterns = &.{ .{ .src = .{ .to_mut_gpr, .none, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .@"and", .src0w, .sa(.src0, .add_umax), ._, ._ }, @@ -20913,7 +24625,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .patterns = &.{ .{ .src = .{ .to_mut_gpr, .none, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .lzcnt, .dst0w, .src0w, ._, ._ }, @@ -20926,7 +24638,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_gpr, .none, .none } }, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .lzcnt, .dst0w, .src0w, ._, ._ }, @@ -20938,7 +24650,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .patterns = &.{ .{ .src = .{ .to_mut_gpr, .none, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .lzcnt, .dst0d, .src0d, ._, ._ }, @@ -20950,7 +24662,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_gpr, .none, .none } }, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .lzcnt, .dst0d, .src0d, ._, ._ }, @@ -20961,7 +24673,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .patterns = &.{ .{ .src = .{ .to_mut_gpr, .none, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .@"and", .src0d, .sa(.src0, .add_umax), ._, ._ }, @@ -20974,7 +24686,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .patterns = &.{ .{ .src = .{ .to_mut_gpr, .none, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .lzcnt, .dst0d, .src0d, ._, ._ }, @@ -20987,7 +24699,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_gpr, .none, .none } }, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .lzcnt, .dst0d, .src0d, ._, ._ }, @@ -20999,7 +24711,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .patterns = &.{ .{ .src = .{ .to_mut_gpr, .none, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .lzcnt, .dst0q, .src0q, ._, ._ }, @@ -21011,7 +24723,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_gpr, .none, .none } }, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .lzcnt, .dst0q, .src0q, ._, ._ }, @@ -21023,7 +24735,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_gpr, .none, .none } }, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .dst0q, .ua(.src0, .add_umax), ._, ._ }, @@ -21037,7 +24749,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .patterns = &.{ .{ .src = .{ .to_mut_gpr, .none, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .lzcnt, .dst0q, .src0q, ._, ._ }, @@ -21050,7 +24762,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_gpr, .none, .none } }, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .lzcnt, .dst0q, .src0q, ._, ._ }, @@ -21074,7 +24786,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .movzx, .dst0d, .src0b, ._, ._ }, @@ -21101,7 +24813,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .movzx, .dst0d, .src0b, ._, ._ }, @@ -21129,7 +24841,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .movzx, .tmp0d, .src0b, ._, ._ }, @@ -21158,7 +24870,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .movzx, .tmp0d, .src0b, ._, ._ }, @@ -21175,7 +24887,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_gpr, .none, .none } }, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .movzx, .dst0d, .src0b, ._, ._ }, @@ -21191,7 +24903,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_gpr, .none, .none } }, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .movzx, .dst0d, .src0b, ._, ._ }, @@ -21219,7 +24931,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .movzx, .tmp0d, .src0b, ._, ._ }, @@ -21248,7 +24960,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .movzx, .tmp0d, .src0b, ._, ._ }, @@ -21275,7 +24987,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .movzx, .tmp0d, .src0b, ._, ._ }, @@ -21300,7 +25012,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .movzx, .tmp0d, .src0b, ._, ._ }, @@ -21326,7 +25038,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .movzx, .dst0d, .src0b, ._, ._ }, @@ -21353,7 +25065,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .movzx, .dst0d, .src0b, ._, ._ }, @@ -21368,7 +25080,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .patterns = &.{ .{ .src = .{ .to_mut_gpr, .none, .none } }, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._r, .bs, .src0w, .src0w, ._, ._ }, @@ -21382,7 +25094,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .patterns = &.{ .{ .src = .{ .to_mut_gpr, .none, .none } }, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .@"and", .src0w, .sa(.src0, .add_umax), ._, ._ }, @@ -21398,7 +25110,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .patterns = &.{ .{ .src = .{ .to_mut_gpr, .none, .none } }, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._r, .bs, .src0w, .src0w, ._, ._ }, @@ -21413,7 +25125,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .patterns = &.{ .{ .src = .{ .to_mut_gpr, .none, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._r, .bs, .dst0w, .src0w, ._, ._ }, @@ -21427,7 +25139,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .patterns = &.{ .{ .src = .{ .to_mut_gpr, .none, .none } }, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .@"and", .src0w, .sa(.src0, .add_umax), ._, ._ }, @@ -21443,7 +25155,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .patterns = &.{ .{ .src = .{ .to_mut_gpr, .none, .none } }, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._r, .bs, .src0w, .src0w, ._, ._ }, @@ -21458,7 +25170,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_gpr, .none, .none } }, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .dst0w, .sia(-1, .src0, .add_2_bit_size), ._, ._ }, @@ -21481,7 +25193,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .@"and", .src0w, .sa(.src0, .add_umax), ._, ._ }, @@ -21507,7 +25219,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0w, .si(0xff), ._, ._ }, @@ -21521,7 +25233,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .patterns = &.{ .{ .src = .{ .to_mut_gpr, .none, .none } }, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._r, .bs, .src0d, .src0d, ._, ._ }, @@ -21535,7 +25247,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .patterns = &.{ .{ .src = .{ .to_mut_gpr, .none, .none } }, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .@"and", .src0d, .sa(.src0, .add_umax), ._, ._ }, @@ -21551,7 +25263,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .patterns = &.{ .{ .src = .{ .to_mut_gpr, .none, .none } }, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._r, .bs, .src0d, .src0d, ._, ._ }, @@ -21566,7 +25278,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .patterns = &.{ .{ .src = .{ .to_mut_gpr, .none, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._r, .bs, .dst0d, .src0d, ._, ._ }, @@ -21580,7 +25292,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .patterns = &.{ .{ .src = .{ .to_mut_gpr, .none, .none } }, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .@"and", .src0d, .sa(.src0, .add_umax), ._, ._ }, @@ -21596,7 +25308,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .patterns = &.{ .{ .src = .{ .to_mut_gpr, .none, .none } }, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._r, .bs, .src0d, .src0d, ._, ._ }, @@ -21611,7 +25323,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_gpr, .none, .none } }, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .dst0d, .sia(-1, .src0, .add_2_bit_size), ._, ._ }, @@ -21634,7 +25346,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .@"and", .src0d, .sa(.src0, .add_umax), ._, ._ }, @@ -21660,7 +25372,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0d, .si(0xff), ._, ._ }, @@ -21674,7 +25386,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .patterns = &.{ .{ .src = .{ .to_mut_gpr, .none, .none } }, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._r, .bs, .src0q, .src0q, ._, ._ }, @@ -21700,7 +25412,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0q, .ua(.src0, .add_umax), ._, ._ }, @@ -21717,7 +25429,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .patterns = &.{ .{ .src = .{ .to_mut_gpr, .none, .none } }, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._r, .bs, .src0q, .src0q, ._, ._ }, @@ -21732,7 +25444,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .patterns = &.{ .{ .src = .{ .to_mut_gpr, .none, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._r, .bs, .dst0q, .src0q, ._, ._ }, @@ -21758,7 +25470,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0q, .ua(.src0, .add_umax), ._, ._ }, @@ -21775,7 +25487,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .patterns = &.{ .{ .src = .{ .to_mut_gpr, .none, .none } }, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._r, .bs, .src0q, .src0q, ._, ._ }, @@ -21791,7 +25503,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_gpr, .none, .none } }, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .dst0d, .sia(-1, .src0, .add_2_bit_size), ._, ._ }, @@ -21816,7 +25528,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .dst0q, .ua(.src0, .add_umax), ._, ._ }, @@ -21844,7 +25556,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0d, .si(0xff), ._, ._ }, @@ -21869,7 +25581,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_size), ._, ._ }, @@ -21899,7 +25611,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_size), ._, ._ }, @@ -21928,7 +25640,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_size), ._, ._ }, @@ -21959,7 +25671,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_size), ._, ._ }, @@ -21989,7 +25701,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_size), ._, ._ }, @@ -22019,7 +25731,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_size), ._, ._ }, @@ -22048,7 +25760,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_size), ._, ._ }, @@ -22079,7 +25791,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_size), ._, ._ }, @@ -22109,7 +25821,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_size), ._, ._ }, @@ -22142,7 +25854,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_size), ._, ._ }, @@ -22174,7 +25886,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_size), ._, ._ }, @@ -22206,7 +25918,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_size), ._, ._ }, @@ -22239,7 +25951,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_size), ._, ._ }, @@ -22271,7 +25983,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_size), ._, ._ }, @@ -22303,7 +26015,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ }, @@ -22332,7 +26044,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ }, @@ -22361,7 +26073,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ }, @@ -22390,7 +26102,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ }, @@ -22419,7 +26131,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ }, @@ -22448,7 +26160,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ }, @@ -22477,7 +26189,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ }, @@ -22506,7 +26218,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ }, @@ -22535,7 +26247,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ }, @@ -22567,7 +26279,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ }, @@ -22599,7 +26311,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ }, @@ -22631,7 +26343,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ }, @@ -22663,7 +26375,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ }, @@ -22693,7 +26405,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ }, @@ -22724,7 +26436,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ }, @@ -22756,7 +26468,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ }, @@ -22788,7 +26500,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ }, @@ -22820,7 +26532,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ }, @@ -22852,7 +26564,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ }, @@ -22882,7 +26594,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ }, @@ -22913,7 +26625,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ }, @@ -22945,7 +26657,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ }, @@ -22977,7 +26689,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ }, @@ -23009,7 +26721,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ }, @@ -23041,7 +26753,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ }, @@ -23071,7 +26783,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ }, @@ -23102,7 +26814,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ }, @@ -23134,7 +26846,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ }, @@ -23166,7 +26878,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ }, @@ -23198,7 +26910,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ }, @@ -23230,7 +26942,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ }, @@ -23261,7 +26973,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ }, @@ -23278,7 +26990,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .false_deps_lzcnt_tzcnt, .lzcnt, null }, .src_constraints = .{ .{ .scalar_remainder_int = .{ .of = .xword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_int_is = .byte }}, + .dst_constraints = .{ .{ .scalar_int_is = .byte }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -23293,7 +27005,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ }, @@ -23318,7 +27030,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .lzcnt, null, null }, .src_constraints = .{ .{ .scalar_remainder_int = .{ .of = .xword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_int_is = .byte }}, + .dst_constraints = .{ .{ .scalar_int_is = .byte }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -23333,7 +27045,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ }, @@ -23357,7 +27069,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", null, null, null }, .src_constraints = .{ .{ .scalar_remainder_int = .{ .of = .xword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_int_is = .byte }}, + .dst_constraints = .{ .{ .scalar_int_is = .byte }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -23372,7 +27084,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ }, @@ -23396,7 +27108,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .false_deps_lzcnt_tzcnt, .lzcnt, null }, .src_constraints = .{ .{ .scalar_remainder_int = .{ .of = .xword, .is = .xword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_int_is = .byte }}, + .dst_constraints = .{ .{ .scalar_int_is = .byte }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -23411,7 +27123,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ }, @@ -23436,7 +27148,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .lzcnt, null, null }, .src_constraints = .{ .{ .scalar_remainder_int = .{ .of = .xword, .is = .xword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_int_is = .byte }}, + .dst_constraints = .{ .{ .scalar_int_is = .byte }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -23451,7 +27163,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ }, @@ -23475,7 +27187,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", null, null, null }, .src_constraints = .{ .{ .scalar_remainder_int = .{ .of = .xword, .is = .xword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_int_is = .byte }}, + .dst_constraints = .{ .{ .scalar_int_is = .byte }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -23490,7 +27202,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ }, @@ -23514,7 +27226,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .false_deps_lzcnt_tzcnt, .lzcnt, null }, .src_constraints = .{ .{ .scalar_remainder_int = .{ .of = .xword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_int_is = .word }}, + .dst_constraints = .{ .{ .scalar_int_is = .word }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -23529,7 +27241,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ }, @@ -23554,7 +27266,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .lzcnt, null, null }, .src_constraints = .{ .{ .scalar_remainder_int = .{ .of = .xword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_int_is = .word }}, + .dst_constraints = .{ .{ .scalar_int_is = .word }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -23569,7 +27281,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ }, @@ -23593,7 +27305,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", null, null, null }, .src_constraints = .{ .{ .scalar_remainder_int = .{ .of = .xword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_int_is = .word }}, + .dst_constraints = .{ .{ .scalar_int_is = .word }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -23608,7 +27320,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ }, @@ -23632,7 +27344,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .false_deps_lzcnt_tzcnt, .lzcnt, null }, .src_constraints = .{ .{ .scalar_remainder_int = .{ .of = .xword, .is = .xword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_int_is = .word }}, + .dst_constraints = .{ .{ .scalar_int_is = .word }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -23647,7 +27359,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ }, @@ -23672,7 +27384,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .lzcnt, null, null }, .src_constraints = .{ .{ .scalar_remainder_int = .{ .of = .xword, .is = .xword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_int_is = .word }}, + .dst_constraints = .{ .{ .scalar_int_is = .word }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -23687,7 +27399,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ }, @@ -23711,7 +27423,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", null, null, null }, .src_constraints = .{ .{ .scalar_remainder_int = .{ .of = .xword, .is = .xword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_int_is = .word }}, + .dst_constraints = .{ .{ .scalar_int_is = .word }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -23726,7 +27438,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_len), ._, ._ }, @@ -23802,11 +27514,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .mut_rc_mask = .{ + .dst_temps = .{ .{ .mut_rc_mask = .{ .ref = .src0, .rc = .sse, .info = .{ .kind = .all, .scalar = .dword }, - } }}, + } }, .unused }, .each = .{ .once = &.{ .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ }, .{ ._, .v_ps, .cvtph2, .tmp0x, .src1q, ._, ._ }, @@ -23840,11 +27552,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .mut_rc_mask = .{ + .dst_temps = .{ .{ .mut_rc_mask = .{ .ref = .src0, .rc = .sse, .info = .{ .kind = .all, .scalar = .dword }, - } }}, + } }, .unused }, .each = .{ .once = &.{ .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ }, .{ ._, .v_ps, .cvtph2, .tmp0x, .src1q, ._, ._ }, @@ -23878,11 +27590,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .mut_rc_mask = .{ + .dst_temps = .{ .{ .mut_rc_mask = .{ .ref = .src0, .rc = .sse, .info = .{ .kind = .all, .scalar = .dword }, - } }}, + } }, .unused }, .each = .{ .once = &.{ .{ ._, .v_ps, .cvtph2, .dst0y, .src0x, ._, ._ }, .{ ._, .v_ps, .cvtph2, .tmp0y, .src1x, ._, ._ }, @@ -23902,11 +27614,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .patterns = &.{ .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, }, - .dst_temps = .{.{ .mut_rc_mask = .{ + .dst_temps = .{ .{ .mut_rc_mask = .{ .ref = .src0, .rc = .sse, .info = .{ .kind = .all, .scalar = .dword }, - } }}, + } }, .unused }, .each = .{ .once = &.{ .{ ._, .v_ss, .cmp, .dst0x, .src0x, .src1d, .vp(switch (cc) { else => unreachable, @@ -23925,11 +27637,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .to_sse, .mem, .none } }, .{ .src = .{ .to_sse, .to_sse, .none } }, }, - .dst_temps = .{.{ .mut_rc_mask = .{ + .dst_temps = .{ .{ .mut_rc_mask = .{ .ref = .src0, .rc = .sse, .info = .{ .kind = .all, .scalar = .dword }, - } }}, + } }, .unused }, .each = .{ .once = &.{ .{ ._, .v_ss, .cmp, .dst0x, .src0x, .src1d, .vp(switch (cc) { else => unreachable, @@ -23948,10 +27660,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .to_mut_sse, .mem, .none } }, .{ .src = .{ .to_mut_sse, .to_sse, .none } }, }, - .dst_temps = .{.{ .ref_mask = .{ + .dst_temps = .{ .{ .ref_mask = .{ .ref = .src0, .info = .{ .kind = .all, .scalar = .dword }, - } }}, + } }, .unused }, .each = .{ .once = &.{ .{ ._, ._ss, .cmp, .dst0x, .src1d, .sp(switch (cc) { else => unreachable, @@ -23969,11 +27681,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .patterns = &.{ .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, }, - .dst_temps = .{.{ .mut_rc_mask = .{ + .dst_temps = .{ .{ .mut_rc_mask = .{ .ref = .src0, .rc = .sse, .info = .{ .kind = .all, .scalar = .dword }, - } }}, + } }, .unused }, .each = .{ .once = &.{ .{ ._, .v_ps, .cmp, .dst0x, .src0x, .src1x, .vp(switch (cc) { else => unreachable, @@ -23992,11 +27704,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .to_sse, .mem, .none } }, .{ .src = .{ .to_sse, .to_sse, .none } }, }, - .dst_temps = .{.{ .mut_rc_mask = .{ + .dst_temps = .{ .{ .mut_rc_mask = .{ .ref = .src0, .rc = .sse, .info = .{ .kind = .all, .scalar = .dword }, - } }}, + } }, .unused }, .each = .{ .once = &.{ .{ ._, .v_ps, .cmp, .dst0x, .src0x, .src1x, .vp(switch (cc) { else => unreachable, @@ -24015,10 +27727,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .to_mut_sse, .mem, .none } }, .{ .src = .{ .to_mut_sse, .to_sse, .none } }, }, - .dst_temps = .{.{ .ref_mask = .{ + .dst_temps = .{ .{ .ref_mask = .{ .ref = .src0, .info = .{ .kind = .all, .scalar = .dword }, - } }}, + } }, .unused }, .each = .{ .once = &.{ .{ ._, ._ps, .cmp, .dst0x, .src1x, .sp(switch (cc) { else => unreachable, @@ -24036,11 +27748,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .patterns = &.{ .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, }, - .dst_temps = .{.{ .mut_rc_mask = .{ + .dst_temps = .{ .{ .mut_rc_mask = .{ .ref = .src0, .rc = .sse, .info = .{ .kind = .all, .scalar = .dword }, - } }}, + } }, .unused }, .each = .{ .once = &.{ .{ ._, .v_ps, .cmp, .dst0y, .src0y, .src1y, .vp(switch (cc) { else => unreachable, @@ -24059,11 +27771,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .to_sse, .mem, .none } }, .{ .src = .{ .to_sse, .to_sse, .none } }, }, - .dst_temps = .{.{ .mut_rc_mask = .{ + .dst_temps = .{ .{ .mut_rc_mask = .{ .ref = .src0, .rc = .sse, .info = .{ .kind = .all, .scalar = .dword }, - } }}, + } }, .unused }, .each = .{ .once = &.{ .{ ._, .v_ps, .cmp, .dst0y, .src0y, .src1y, .vp(switch (cc) { else => unreachable, @@ -24081,11 +27793,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .patterns = &.{ .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, }, - .dst_temps = .{.{ .mut_rc_mask = .{ + .dst_temps = .{ .{ .mut_rc_mask = .{ .ref = .src0, .rc = .sse, .info = .{ .kind = .all, .scalar = .qword }, - } }}, + } }, .unused }, .each = .{ .once = &.{ .{ ._, .v_sd, .cmp, .dst0x, .src0x, .src1q, .vp(switch (cc) { else => unreachable, @@ -24104,11 +27816,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .to_sse, .mem, .none } }, .{ .src = .{ .to_sse, .to_sse, .none } }, }, - .dst_temps = .{.{ .mut_rc_mask = .{ + .dst_temps = .{ .{ .mut_rc_mask = .{ .ref = .src0, .rc = .sse, .info = .{ .kind = .all, .scalar = .qword }, - } }}, + } }, .unused }, .each = .{ .once = &.{ .{ ._, .v_sd, .cmp, .dst0x, .src0x, .src1q, .vp(switch (cc) { else => unreachable, @@ -24127,10 +27839,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .to_mut_sse, .mem, .none } }, .{ .src = .{ .to_mut_sse, .to_sse, .none } }, }, - .dst_temps = .{.{ .ref_mask = .{ + .dst_temps = .{ .{ .ref_mask = .{ .ref = .src0, .info = .{ .kind = .all, .scalar = .qword }, - } }}, + } }, .unused }, .each = .{ .once = &.{ .{ ._, ._sd, .cmp, .dst0x, .src1q, .sp(switch (cc) { else => unreachable, @@ -24148,11 +27860,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .patterns = &.{ .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, }, - .dst_temps = .{.{ .mut_rc_mask = .{ + .dst_temps = .{ .{ .mut_rc_mask = .{ .ref = .src0, .rc = .sse, .info = .{ .kind = .all, .scalar = .qword }, - } }}, + } }, .unused }, .each = .{ .once = &.{ .{ ._, .v_pd, .cmp, .dst0x, .src0x, .src1x, .vp(switch (cc) { else => unreachable, @@ -24171,11 +27883,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .to_sse, .mem, .none } }, .{ .src = .{ .to_sse, .to_sse, .none } }, }, - .dst_temps = .{.{ .mut_rc_mask = .{ + .dst_temps = .{ .{ .mut_rc_mask = .{ .ref = .src0, .rc = .sse, .info = .{ .kind = .all, .scalar = .qword }, - } }}, + } }, .unused }, .each = .{ .once = &.{ .{ ._, .v_pd, .cmp, .dst0x, .src0x, .src1x, .vp(switch (cc) { else => unreachable, @@ -24194,10 +27906,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .to_mut_sse, .mem, .none } }, .{ .src = .{ .to_mut_sse, .to_sse, .none } }, }, - .dst_temps = .{.{ .ref_mask = .{ + .dst_temps = .{ .{ .ref_mask = .{ .ref = .src0, .info = .{ .kind = .all, .scalar = .qword }, - } }}, + } }, .unused }, .each = .{ .once = &.{ .{ ._, ._pd, .cmp, .dst0x, .src1x, .sp(switch (cc) { else => unreachable, @@ -24215,11 +27927,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .patterns = &.{ .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, }, - .dst_temps = .{.{ .mut_rc_mask = .{ + .dst_temps = .{ .{ .mut_rc_mask = .{ .ref = .src0, .rc = .sse, .info = .{ .kind = .all, .scalar = .qword }, - } }}, + } }, .unused }, .each = .{ .once = &.{ .{ ._, .v_pd, .cmp, .dst0y, .src0y, .src1y, .vp(switch (cc) { else => unreachable, @@ -24238,11 +27950,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .to_sse, .mem, .none } }, .{ .src = .{ .to_sse, .to_sse, .none } }, }, - .dst_temps = .{.{ .mut_rc_mask = .{ + .dst_temps = .{ .{ .mut_rc_mask = .{ .ref = .src0, .rc = .sse, .info = .{ .kind = .all, .scalar = .qword }, - } }}, + } }, .unused }, .each = .{ .once = &.{ .{ ._, .v_pd, .cmp, .dst0y, .src0y, .src1y, .vp(switch (cc) { else => unreachable, @@ -24271,7 +27983,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -24310,7 +28022,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -24335,7 +28047,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, }, - .dst_constraints = .{.{ .bool_vec = .dword }}, + .dst_constraints = .{ .{ .bool_vec = .dword }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .to_mem, .none } }, }, @@ -24351,7 +28063,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .xor, .dst0d, .dst0d, ._, ._ }, @@ -24377,7 +28089,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, }, - .dst_constraints = .{.{ .bool_vec = .dword }}, + .dst_constraints = .{ .{ .bool_vec = .dword }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .to_mem, .none } }, }, @@ -24393,7 +28105,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .xor, .dst0d, .dst0d, ._, ._ }, @@ -24419,7 +28131,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, }, - .dst_constraints = .{.{ .bool_vec = .dword }}, + .dst_constraints = .{ .{ .bool_vec = .dword }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .to_mem, .none } }, }, @@ -24435,7 +28147,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .xor, .dst0d, .dst0d, ._, ._ }, @@ -24462,7 +28174,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, }, - .dst_constraints = .{.{ .bool_vec = .dword }}, + .dst_constraints = .{ .{ .bool_vec = .dword }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .to_mem, .none } }, }, @@ -24478,7 +28190,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .xor, .dst0d, .dst0d, ._, ._ }, @@ -24505,7 +28217,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, }, - .dst_constraints = .{.{ .bool_vec = .dword }}, + .dst_constraints = .{ .{ .bool_vec = .dword }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .to_mem, .none } }, }, @@ -24521,7 +28233,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .type = .f32, .kind = .mem }, .unused, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .xor, .dst0d, .dst0d, ._, ._ }, @@ -24550,7 +28262,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, }, - .dst_constraints = .{.{ .bool_vec = .dword }}, + .dst_constraints = .{ .{ .bool_vec = .dword }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .to_mem, .none } }, }, @@ -24566,7 +28278,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .type = .f32, .kind = .mem }, .unused, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .xor, .dst0d, .dst0d, ._, ._ }, @@ -24610,7 +28322,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .type = .u64, .kind = .{ .reg = .rdx } }, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, @@ -24661,7 +28373,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .type = .u64, .kind = .{ .reg = .rdx } }, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, @@ -24712,7 +28424,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .type = .u64, .kind = .{ .reg = .rdx } }, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, @@ -24764,7 +28476,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .type = .u64, .kind = .{ .reg = .rdx } }, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, @@ -24816,7 +28528,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .type = .u64, .kind = .{ .reg = .rdx } }, .{ .type = .f32, .kind = .mem }, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, @@ -24870,7 +28582,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .type = .u64, .kind = .{ .reg = .rdx } }, .{ .type = .f32, .kind = .mem }, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, @@ -24923,7 +28635,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -24961,7 +28673,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -24999,7 +28711,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -25045,7 +28757,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -25092,7 +28804,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -25141,7 +28853,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -25188,7 +28900,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -25235,7 +28947,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -25285,7 +28997,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -25335,7 +29047,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -25388,7 +29100,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -25441,7 +29153,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -25499,7 +29211,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -25552,7 +29264,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -25605,7 +29317,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -25649,7 +29361,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, }, - .dst_constraints = .{.{ .bool_vec = .dword }}, + .dst_constraints = .{ .{ .bool_vec = .dword }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .to_mem, .none } }, }, @@ -25665,7 +29377,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .type = .u32, .kind = .{ .reg = .edx } }, .unused, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .xor, .dst0d, .dst0d, ._, ._ }, @@ -25691,7 +29403,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, }, - .dst_constraints = .{.{ .bool_vec = .dword }}, + .dst_constraints = .{ .{ .bool_vec = .dword }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .to_mem, .none } }, }, @@ -25707,7 +29419,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .type = .u32, .kind = .{ .reg = .edx } }, .unused, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .xor, .dst0d, .dst0d, ._, ._ }, @@ -25733,7 +29445,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, }, - .dst_constraints = .{.{ .bool_vec = .dword }}, + .dst_constraints = .{ .{ .bool_vec = .dword }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .to_mem, .none } }, }, @@ -25749,7 +29461,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .type = .u32, .kind = .{ .reg = .edx } }, .unused, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .xor, .dst0d, .dst0d, ._, ._ }, @@ -25775,7 +29487,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, }, - .dst_constraints = .{.{ .bool_vec = .dword }}, + .dst_constraints = .{ .{ .bool_vec = .dword }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .to_mem, .none } }, }, @@ -25791,7 +29503,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .type = .u32, .kind = .{ .reg = .edx } }, .unused, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .xor, .dst0d, .dst0d, ._, ._ }, @@ -25817,7 +29529,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, }, - .dst_constraints = .{.{ .bool_vec = .dword }}, + .dst_constraints = .{ .{ .bool_vec = .dword }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .to_mem, .none } }, }, @@ -25833,7 +29545,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .type = .u32, .kind = .{ .reg = .edx } }, .unused, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .xor, .dst0d, .dst0d, ._, ._ }, @@ -25859,7 +29571,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, }, - .dst_constraints = .{.{ .bool_vec = .dword }}, + .dst_constraints = .{ .{ .bool_vec = .dword }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .to_mem, .none } }, }, @@ -25875,7 +29587,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .type = .u32, .kind = .{ .reg = .edx } }, .unused, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .xor, .dst0d, .dst0d, ._, ._ }, @@ -25916,7 +29628,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .type = .u8, .kind = .{ .reg = .cl } }, .{ .type = .u64, .kind = .{ .reg = .rdx } }, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -25967,7 +29679,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .type = .u8, .kind = .{ .reg = .cl } }, .{ .type = .u64, .kind = .{ .reg = .rdx } }, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -26018,7 +29730,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .type = .u8, .kind = .{ .reg = .cl } }, .{ .type = .u64, .kind = .{ .reg = .rdx } }, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -26069,7 +29781,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .type = .u8, .kind = .{ .reg = .cl } }, .{ .type = .u64, .kind = .{ .reg = .rdx } }, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -26120,7 +29832,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .type = .u8, .kind = .{ .reg = .cl } }, .{ .type = .u64, .kind = .{ .reg = .rdx } }, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -26171,7 +29883,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .type = .u8, .kind = .{ .reg = .cl } }, .{ .type = .u64, .kind = .{ .reg = .rdx } }, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -26222,7 +29934,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_mut_gpr, .to_gpr, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = switch (cc) { else => unreachable, @@ -26247,7 +29959,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_mut_gpr, .to_gpr, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = switch (cc) { else => unreachable, @@ -26272,7 +29984,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_mut_gpr, .to_gpr, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = switch (cc) { else => unreachable, @@ -26298,7 +30010,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_mut_gpr, .to_gpr, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = switch (cc) { else => unreachable, @@ -26326,7 +30038,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = switch (cc) { else => unreachable, @@ -26360,7 +30072,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_sse, .to_sse, .none } }, }, - .dst_temps = .{.{ .mut_rc_mask = .{ .ref = .src0, .rc = .sse, .info = .{ + .dst_temps = .{ .{ .mut_rc_mask = .{ .ref = .src0, .rc = .sse, .info = .{ .kind = .all, .inverted = switch (cc) { else => unreachable, @@ -26368,7 +30080,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .ne => true, }, .scalar = .byte, - } } }}, + } } }, .unused }, .each = .{ .once = &.{ .{ ._, .vp_b, .cmpeq, .dst0x, .src0x, .src1x, ._ }, } }, @@ -26384,7 +30096,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_sse, .to_sse, .none } }, }, - .dst_temps = .{.{ .mut_rc_mask = .{ .ref = .src0, .rc = .sse, .info = .{ + .dst_temps = .{ .{ .mut_rc_mask = .{ .ref = .src0, .rc = .sse, .info = .{ .kind = .all, .inverted = switch (cc) { else => unreachable, @@ -26392,7 +30104,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .ne => true, }, .scalar = .word, - } } }}, + } } }, .unused }, .each = .{ .once = &.{ .{ ._, .vp_w, .cmpeq, .dst0x, .src0x, .src1x, ._ }, } }, @@ -26408,7 +30120,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_sse, .to_sse, .none } }, }, - .dst_temps = .{.{ .mut_rc_mask = .{ .ref = .src0, .rc = .sse, .info = .{ + .dst_temps = .{ .{ .mut_rc_mask = .{ .ref = .src0, .rc = .sse, .info = .{ .kind = .all, .inverted = switch (cc) { else => unreachable, @@ -26416,7 +30128,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .ne => true, }, .scalar = .dword, - } } }}, + } } }, .unused }, .each = .{ .once = &.{ .{ ._, .vp_d, .cmpeq, .dst0x, .src0x, .src1x, ._ }, } }, @@ -26432,7 +30144,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_sse, .to_sse, .none } }, }, - .dst_temps = .{.{ .mut_rc_mask = .{ .ref = .src0, .rc = .sse, .info = .{ + .dst_temps = .{ .{ .mut_rc_mask = .{ .ref = .src0, .rc = .sse, .info = .{ .kind = .all, .inverted = switch (cc) { else => unreachable, @@ -26440,7 +30152,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .ne => true, }, .scalar = .qword, - } } }}, + } } }, .unused }, .each = .{ .once = &.{ .{ ._, .vp_q, .cmpeq, .dst0x, .src0x, .src1x, ._ }, } }, @@ -26456,7 +30168,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_mut_sse, .to_sse, .none } }, }, - .dst_temps = .{.{ .ref_mask = .{ .ref = .src0, .info = .{ + .dst_temps = .{ .{ .ref_mask = .{ .ref = .src0, .info = .{ .kind = .all, .inverted = switch (cc) { else => unreachable, @@ -26464,7 +30176,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .ne => true, }, .scalar = .byte, - } } }}, + } } }, .unused }, .each = .{ .once = &.{ .{ ._, .p_b, .cmpeq, .dst0x, .src1x, ._, ._ }, } }, @@ -26480,7 +30192,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_mut_sse, .to_sse, .none } }, }, - .dst_temps = .{.{ .ref_mask = .{ .ref = .src0, .info = .{ + .dst_temps = .{ .{ .ref_mask = .{ .ref = .src0, .info = .{ .kind = .all, .inverted = switch (cc) { else => unreachable, @@ -26488,7 +30200,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .ne => true, }, .scalar = .word, - } } }}, + } } }, .unused }, .each = .{ .once = &.{ .{ ._, .p_w, .cmpeq, .dst0x, .src1x, ._, ._ }, } }, @@ -26504,7 +30216,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_mut_sse, .to_sse, .none } }, }, - .dst_temps = .{.{ .ref_mask = .{ .ref = .src0, .info = .{ + .dst_temps = .{ .{ .ref_mask = .{ .ref = .src0, .info = .{ .kind = .all, .inverted = switch (cc) { else => unreachable, @@ -26512,7 +30224,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .ne => true, }, .scalar = .dword, - } } }}, + } } }, .unused }, .each = .{ .once = &.{ .{ ._, .p_d, .cmpeq, .dst0x, .src1x, ._, ._ }, } }, @@ -26528,7 +30240,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_mut_sse, .to_sse, .none } }, }, - .dst_temps = .{.{ .ref_mask = .{ .ref = .src0, .info = .{ + .dst_temps = .{ .{ .ref_mask = .{ .ref = .src0, .info = .{ .kind = .all, .inverted = switch (cc) { else => unreachable, @@ -26536,7 +30248,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .ne => true, }, .scalar = .qword, - } } }}, + } } }, .unused }, .each = .{ .once = &.{ .{ ._, .p_q, .cmpeq, .dst0x, .src1x, ._, ._ }, } }, @@ -26552,7 +30264,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_mut_mmx, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_mut_mmx, .to_mmx, .none } }, }, - .dst_temps = .{.{ .ref_mask = .{ .ref = .src0, .info = .{ + .dst_temps = .{ .{ .ref_mask = .{ .ref = .src0, .info = .{ .kind = .all, .inverted = switch (cc) { else => unreachable, @@ -26560,7 +30272,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .ne => true, }, .scalar = .byte, - } } }}, + } } }, .unused }, .each = .{ .once = &.{ .{ ._, .p_b, .cmpeq, .dst0q, .src1q, ._, ._ }, } }, @@ -26576,7 +30288,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_mut_mmx, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_mut_mmx, .to_mmx, .none } }, }, - .dst_temps = .{.{ .ref_mask = .{ .ref = .src0, .info = .{ + .dst_temps = .{ .{ .ref_mask = .{ .ref = .src0, .info = .{ .kind = .all, .inverted = switch (cc) { else => unreachable, @@ -26584,7 +30296,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .ne => true, }, .scalar = .word, - } } }}, + } } }, .unused }, .each = .{ .once = &.{ .{ ._, .p_w, .cmpeq, .dst0q, .src1q, ._, ._ }, } }, @@ -26600,7 +30312,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_mut_mmx, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_mut_mmx, .to_mmx, .none } }, }, - .dst_temps = .{.{ .ref_mask = .{ .ref = .src0, .info = .{ + .dst_temps = .{ .{ .ref_mask = .{ .ref = .src0, .info = .{ .kind = .all, .inverted = switch (cc) { else => unreachable, @@ -26608,7 +30320,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .ne => true, }, .scalar = .dword, - } } }}, + } } }, .unused }, .each = .{ .once = &.{ .{ ._, .p_d, .cmpeq, .dst0q, .src1q, ._, ._ }, } }, @@ -26624,7 +30336,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_sse, .to_sse, .none } }, }, - .dst_temps = .{.{ .mut_rc_mask = .{ .ref = .src0, .rc = .sse, .info = .{ + .dst_temps = .{ .{ .mut_rc_mask = .{ .ref = .src0, .rc = .sse, .info = .{ .kind = .all, .inverted = switch (cc) { else => unreachable, @@ -26632,7 +30344,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .ne => true, }, .scalar = .byte, - } } }}, + } } }, .unused }, .each = .{ .once = &.{ .{ ._, .vp_b, .cmpeq, .dst0y, .src0y, .src1y, ._ }, } }, @@ -26648,7 +30360,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_sse, .to_sse, .none } }, }, - .dst_temps = .{.{ .mut_rc_mask = .{ .ref = .src0, .rc = .sse, .info = .{ + .dst_temps = .{ .{ .mut_rc_mask = .{ .ref = .src0, .rc = .sse, .info = .{ .kind = .all, .inverted = switch (cc) { else => unreachable, @@ -26656,7 +30368,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .ne => true, }, .scalar = .word, - } } }}, + } } }, .unused }, .each = .{ .once = &.{ .{ ._, .vp_w, .cmpeq, .dst0y, .src0y, .src1y, ._ }, } }, @@ -26672,7 +30384,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_sse, .to_sse, .none } }, }, - .dst_temps = .{.{ .mut_rc_mask = .{ .ref = .src0, .rc = .sse, .info = .{ + .dst_temps = .{ .{ .mut_rc_mask = .{ .ref = .src0, .rc = .sse, .info = .{ .kind = .all, .inverted = switch (cc) { else => unreachable, @@ -26680,7 +30392,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .ne => true, }, .scalar = .dword, - } } }}, + } } }, .unused }, .each = .{ .once = &.{ .{ ._, .vp_d, .cmpeq, .dst0y, .src0y, .src1y, ._ }, } }, @@ -26696,7 +30408,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_sse, .to_sse, .none } }, }, - .dst_temps = .{.{ .mut_rc_mask = .{ .ref = .src0, .rc = .sse, .info = .{ + .dst_temps = .{ .{ .mut_rc_mask = .{ .ref = .src0, .rc = .sse, .info = .{ .kind = .all, .inverted = switch (cc) { else => unreachable, @@ -26704,7 +30416,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .ne => true, }, .scalar = .qword, - } } }}, + } } }, .unused }, .each = .{ .once = &.{ .{ ._, .vp_q, .cmpeq, .dst0y, .src0y, .src1y, ._ }, } }, @@ -26725,7 +30437,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = switch (cc) { else => unreachable, @@ -26770,7 +30482,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = switch (cc) { else => unreachable, @@ -26817,7 +30529,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = switch (cc) { else => unreachable, @@ -26862,7 +30574,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = switch (cc) { else => unreachable, @@ -26931,7 +30643,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = switch (cc) { else => unreachable, @@ -26976,7 +30688,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = switch (cc) { else => unreachable, @@ -27023,7 +30735,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = switch (cc) { else => unreachable, @@ -27092,7 +30804,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = switch (cc) { else => unreachable, @@ -27161,7 +30873,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = switch (cc) { else => unreachable, @@ -27206,7 +30918,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = switch (cc) { else => unreachable, @@ -27253,7 +30965,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = switch (cc) { else => unreachable, @@ -27322,7 +31034,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = switch (cc) { else => unreachable, @@ -27391,7 +31103,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = switch (cc) { else => unreachable, @@ -27436,7 +31148,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = switch (cc) { else => unreachable, @@ -27509,7 +31221,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = switch (cc) { else => unreachable, @@ -27569,7 +31281,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { } }, }, .{ .src_constraints = .{ .{ .scalar_int_is = .byte }, .{ .scalar_int_is = .byte }, .any }, - .dst_constraints = .{.{ .bool_vec = .byte }}, + .dst_constraints = .{ .{ .bool_vec = .byte }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .to_mem, .none } }, }, @@ -27584,7 +31296,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .xor, .dst0b, .dst0b, ._, ._ }, @@ -27601,7 +31313,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { } }, }, .{ .src_constraints = .{ .{ .scalar_int_is = .word }, .{ .scalar_int_is = .word }, .any }, - .dst_constraints = .{.{ .bool_vec = .byte }}, + .dst_constraints = .{ .{ .bool_vec = .byte }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .to_mem, .none } }, }, @@ -27616,7 +31328,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .xor, .dst0b, .dst0b, ._, ._ }, @@ -27633,7 +31345,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { } }, }, .{ .src_constraints = .{ .{ .scalar_int_is = .dword }, .{ .scalar_int_is = .dword }, .any }, - .dst_constraints = .{.{ .bool_vec = .byte }}, + .dst_constraints = .{ .{ .bool_vec = .byte }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .to_mem, .none } }, }, @@ -27648,7 +31360,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .xor, .dst0b, .dst0b, ._, ._ }, @@ -27666,7 +31378,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", null, null, null }, .src_constraints = .{ .{ .scalar_int_is = .qword }, .{ .scalar_int_is = .qword }, .any }, - .dst_constraints = .{.{ .bool_vec = .byte }}, + .dst_constraints = .{ .{ .bool_vec = .byte }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .to_mem, .none } }, }, @@ -27681,7 +31393,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .xor, .dst0b, .dst0b, ._, ._ }, @@ -27698,7 +31410,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { } }, }, .{ .src_constraints = .{ .any_scalar_int, .any_scalar_int, .any }, - .dst_constraints = .{.{ .bool_vec = .byte }}, + .dst_constraints = .{ .{ .bool_vec = .byte }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .to_mem, .none } }, }, @@ -27713,7 +31425,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .xor, .dst0b, .dst0b, ._, ._ }, @@ -27737,7 +31449,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { } }, }, .{ .src_constraints = .{ .{ .scalar_int_is = .byte }, .{ .scalar_int_is = .byte }, .any }, - .dst_constraints = .{.{ .bool_vec = .dword }}, + .dst_constraints = .{ .{ .bool_vec = .dword }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .to_mem, .none } }, }, @@ -27752,7 +31464,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .xor, .dst0d, .dst0d, ._, ._ }, @@ -27770,7 +31482,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { } }, }, .{ .src_constraints = .{ .{ .scalar_int_is = .word }, .{ .scalar_int_is = .word }, .any }, - .dst_constraints = .{.{ .bool_vec = .dword }}, + .dst_constraints = .{ .{ .bool_vec = .dword }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .to_mem, .none } }, }, @@ -27785,7 +31497,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .xor, .dst0d, .dst0d, ._, ._ }, @@ -27803,7 +31515,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { } }, }, .{ .src_constraints = .{ .{ .scalar_int_is = .dword }, .{ .scalar_int_is = .dword }, .any }, - .dst_constraints = .{.{ .bool_vec = .dword }}, + .dst_constraints = .{ .{ .bool_vec = .dword }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .to_mem, .none } }, }, @@ -27818,7 +31530,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .xor, .dst0d, .dst0d, ._, ._ }, @@ -27837,7 +31549,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", null, null, null }, .src_constraints = .{ .{ .scalar_int_is = .qword }, .{ .scalar_int_is = .qword }, .any }, - .dst_constraints = .{.{ .bool_vec = .dword }}, + .dst_constraints = .{ .{ .bool_vec = .dword }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .to_mem, .none } }, }, @@ -27852,7 +31564,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .xor, .dst0d, .dst0d, ._, ._ }, @@ -27870,7 +31582,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { } }, }, .{ .src_constraints = .{ .any_scalar_int, .any_scalar_int, .any }, - .dst_constraints = .{.{ .bool_vec = .dword }}, + .dst_constraints = .{ .{ .bool_vec = .dword }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .to_mem, .none } }, }, @@ -27885,7 +31597,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .xor, .dst0d, .dst0d, ._, ._ }, @@ -27911,7 +31623,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", null, null, null }, .src_constraints = .{ .{ .scalar_int_is = .byte }, .{ .scalar_int_is = .byte }, .any }, - .dst_constraints = .{.{ .bool_vec = .qword }}, + .dst_constraints = .{ .{ .bool_vec = .qword }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .to_mem, .none } }, }, @@ -27926,7 +31638,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .xor, .dst0d, .dst0d, ._, ._ }, @@ -27945,7 +31657,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", null, null, null }, .src_constraints = .{ .{ .scalar_int_is = .word }, .{ .scalar_int_is = .word }, .any }, - .dst_constraints = .{.{ .bool_vec = .qword }}, + .dst_constraints = .{ .{ .bool_vec = .qword }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .to_mem, .none } }, }, @@ -27960,7 +31672,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .xor, .dst0d, .dst0d, ._, ._ }, @@ -27978,7 +31690,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", null, null, null }, .src_constraints = .{ .{ .scalar_int_is = .dword }, .{ .scalar_int_is = .dword }, .any }, - .dst_constraints = .{.{ .bool_vec = .qword }}, + .dst_constraints = .{ .{ .bool_vec = .qword }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .to_mem, .none } }, }, @@ -27993,7 +31705,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .xor, .dst0d, .dst0d, ._, ._ }, @@ -28012,7 +31724,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", null, null, null }, .src_constraints = .{ .{ .scalar_int_is = .qword }, .{ .scalar_int_is = .qword }, .any }, - .dst_constraints = .{.{ .bool_vec = .qword }}, + .dst_constraints = .{ .{ .bool_vec = .qword }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .to_mem, .none } }, }, @@ -28027,7 +31739,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .xor, .dst0d, .dst0d, ._, ._ }, @@ -28046,7 +31758,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", null, null, null }, .src_constraints = .{ .any_scalar_int, .any_scalar_int, .any }, - .dst_constraints = .{.{ .bool_vec = .qword }}, + .dst_constraints = .{ .{ .bool_vec = .qword }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .to_mem, .none } }, }, @@ -28061,7 +31773,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .xor, .dst0d, .dst0d, ._, ._ }, @@ -28100,7 +31812,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -28142,7 +31854,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -28184,7 +31896,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -28227,7 +31939,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -28274,11 +31986,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .mut_rc_mask = .{ + .dst_temps = .{ .{ .mut_rc_mask = .{ .ref = .src0, .rc = .sse, .info = .{ .kind = .all, .scalar = .dword }, - } }}, + } }, .unused }, .each = .{ .once = &.{ .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ }, .{ ._, .v_ps, .cvtph2, .tmp0x, .src1q, ._, ._ }, @@ -28312,11 +32024,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .mut_rc_mask = .{ + .dst_temps = .{ .{ .mut_rc_mask = .{ .ref = .src0, .rc = .sse, .info = .{ .kind = .all, .scalar = .dword }, - } }}, + } }, .unused }, .each = .{ .once = &.{ .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ }, .{ ._, .v_ps, .cvtph2, .tmp0x, .src1q, ._, ._ }, @@ -28350,11 +32062,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .mut_rc_mask = .{ + .dst_temps = .{ .{ .mut_rc_mask = .{ .ref = .src0, .rc = .sse, .info = .{ .kind = .all, .scalar = .dword }, - } }}, + } }, .unused }, .each = .{ .once = &.{ .{ ._, .v_ps, .cvtph2, .dst0y, .src0x, ._, ._ }, .{ ._, .v_ps, .cvtph2, .tmp0y, .src1x, ._, ._ }, @@ -28376,11 +32088,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_sse, .to_sse, .none } }, }, - .dst_temps = .{.{ .mut_rc_mask = .{ + .dst_temps = .{ .{ .mut_rc_mask = .{ .ref = .src0, .rc = .sse, .info = .{ .kind = .all, .scalar = .dword }, - } }}, + } }, .unused }, .each = .{ .once = &.{ .{ ._, .v_ss, .cmp, .dst0x, .src0x, .src1d, .vp(switch (cc) { else => unreachable, @@ -28400,10 +32112,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_mut_sse, .to_sse, .none } }, }, - .dst_temps = .{.{ .ref_mask = .{ + .dst_temps = .{ .{ .ref_mask = .{ .ref = .src0, .info = .{ .kind = .all, .scalar = .dword }, - } }}, + } }, .unused }, .each = .{ .once = &.{ .{ ._, ._ss, .cmp, .dst0x, .src1d, .sp(switch (cc) { else => unreachable, @@ -28423,11 +32135,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_sse, .to_sse, .none } }, }, - .dst_temps = .{.{ .mut_rc_mask = .{ + .dst_temps = .{ .{ .mut_rc_mask = .{ .ref = .src0, .rc = .sse, .info = .{ .kind = .all, .scalar = .dword }, - } }}, + } }, .unused }, .each = .{ .once = &.{ .{ ._, .v_ps, .cmp, .dst0x, .src0x, .src1x, .vp(switch (cc) { else => unreachable, @@ -28447,10 +32159,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_mut_sse, .to_sse, .none } }, }, - .dst_temps = .{.{ .ref_mask = .{ + .dst_temps = .{ .{ .ref_mask = .{ .ref = .src0, .info = .{ .kind = .all, .scalar = .dword }, - } }}, + } }, .unused }, .each = .{ .once = &.{ .{ ._, ._ps, .cmp, .dst0x, .src1x, .sp(switch (cc) { else => unreachable, @@ -28470,11 +32182,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_sse, .to_sse, .none } }, }, - .dst_temps = .{.{ .mut_rc_mask = .{ + .dst_temps = .{ .{ .mut_rc_mask = .{ .ref = .src0, .rc = .sse, .info = .{ .kind = .all, .scalar = .dword }, - } }}, + } }, .unused }, .each = .{ .once = &.{ .{ ._, .v_ps, .cmp, .dst0y, .src0y, .src1y, .vp(switch (cc) { else => unreachable, @@ -28494,11 +32206,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_sse, .to_sse, .none } }, }, - .dst_temps = .{.{ .mut_rc_mask = .{ + .dst_temps = .{ .{ .mut_rc_mask = .{ .ref = .src0, .rc = .sse, .info = .{ .kind = .all, .scalar = .qword }, - } }}, + } }, .unused }, .each = .{ .once = &.{ .{ ._, .v_sd, .cmp, .dst0x, .src0x, .src1q, .vp(switch (cc) { else => unreachable, @@ -28518,10 +32230,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_mut_sse, .to_sse, .none } }, }, - .dst_temps = .{.{ .ref_mask = .{ + .dst_temps = .{ .{ .ref_mask = .{ .ref = .src0, .info = .{ .kind = .all, .scalar = .qword }, - } }}, + } }, .unused }, .each = .{ .once = &.{ .{ ._, ._sd, .cmp, .dst0x, .src1q, .sp(switch (cc) { else => unreachable, @@ -28541,11 +32253,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_sse, .to_sse, .none } }, }, - .dst_temps = .{.{ .mut_rc_mask = .{ + .dst_temps = .{ .{ .mut_rc_mask = .{ .ref = .src0, .rc = .sse, .info = .{ .kind = .all, .scalar = .qword }, - } }}, + } }, .unused }, .each = .{ .once = &.{ .{ ._, .v_pd, .cmp, .dst0x, .src0x, .src1x, .vp(switch (cc) { else => unreachable, @@ -28565,10 +32277,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_mut_sse, .to_sse, .none } }, }, - .dst_temps = .{.{ .ref_mask = .{ + .dst_temps = .{ .{ .ref_mask = .{ .ref = .src0, .info = .{ .kind = .all, .scalar = .qword }, - } }}, + } }, .unused }, .each = .{ .once = &.{ .{ ._, ._pd, .cmp, .dst0x, .src1x, .sp(switch (cc) { else => unreachable, @@ -28588,11 +32300,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_sse, .to_sse, .none } }, }, - .dst_temps = .{.{ .mut_rc_mask = .{ + .dst_temps = .{ .{ .mut_rc_mask = .{ .ref = .src0, .rc = .sse, .info = .{ .kind = .all, .scalar = .qword }, - } }}, + } }, .unused }, .each = .{ .once = &.{ .{ ._, .v_pd, .cmp, .dst0y, .src0y, .src1y, .vp(switch (cc) { else => unreachable, @@ -28621,7 +32333,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -28660,7 +32372,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -28685,7 +32397,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, }, - .dst_constraints = .{.{ .bool_vec = .dword }}, + .dst_constraints = .{ .{ .bool_vec = .dword }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .to_mem, .none } }, }, @@ -28701,7 +32413,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .xor, .dst0d, .dst0d, ._, ._ }, @@ -28727,7 +32439,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, }, - .dst_constraints = .{.{ .bool_vec = .dword }}, + .dst_constraints = .{ .{ .bool_vec = .dword }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .to_mem, .none } }, }, @@ -28743,7 +32455,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .xor, .dst0d, .dst0d, ._, ._ }, @@ -28769,7 +32481,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, }, - .dst_constraints = .{.{ .bool_vec = .dword }}, + .dst_constraints = .{ .{ .bool_vec = .dword }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .to_mem, .none } }, }, @@ -28785,7 +32497,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .xor, .dst0d, .dst0d, ._, ._ }, @@ -28812,7 +32524,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, }, - .dst_constraints = .{.{ .bool_vec = .dword }}, + .dst_constraints = .{ .{ .bool_vec = .dword }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .to_mem, .none } }, }, @@ -28828,7 +32540,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .xor, .dst0d, .dst0d, ._, ._ }, @@ -28855,7 +32567,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, }, - .dst_constraints = .{.{ .bool_vec = .dword }}, + .dst_constraints = .{ .{ .bool_vec = .dword }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .to_mem, .none } }, }, @@ -28871,7 +32583,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .type = .f32, .kind = .mem }, .unused, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .xor, .dst0d, .dst0d, ._, ._ }, @@ -28900,7 +32612,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, }, - .dst_constraints = .{.{ .bool_vec = .dword }}, + .dst_constraints = .{ .{ .bool_vec = .dword }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .to_mem, .none } }, }, @@ -28916,7 +32628,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .type = .f32, .kind = .mem }, .unused, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .xor, .dst0d, .dst0d, ._, ._ }, @@ -28960,7 +32672,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .type = .u64, .kind = .{ .reg = .rdx } }, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, @@ -29011,7 +32723,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .type = .u64, .kind = .{ .reg = .rdx } }, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, @@ -29062,7 +32774,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .type = .u64, .kind = .{ .reg = .rdx } }, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, @@ -29114,7 +32826,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .type = .u64, .kind = .{ .reg = .rdx } }, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, @@ -29166,7 +32878,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .type = .u64, .kind = .{ .reg = .rdx } }, .{ .type = .f32, .kind = .mem }, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, @@ -29220,7 +32932,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .type = .u64, .kind = .{ .reg = .rdx } }, .{ .type = .f32, .kind = .mem }, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, @@ -29273,7 +32985,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -29311,7 +33023,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -29349,7 +33061,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -29395,7 +33107,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -29442,7 +33154,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -29491,7 +33203,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -29538,7 +33250,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -29585,7 +33297,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -29635,7 +33347,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -29685,7 +33397,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -29745,7 +33457,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -29805,7 +33517,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -29856,7 +33568,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -29916,7 +33628,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -29976,7 +33688,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -30013,7 +33725,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, }, - .dst_constraints = .{.{ .bool_vec = .dword }}, + .dst_constraints = .{ .{ .bool_vec = .dword }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .to_mem, .none } }, }, @@ -30029,7 +33741,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .type = .u32, .kind = .{ .reg = .edx } }, .unused, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .xor, .dst0d, .dst0d, ._, ._ }, @@ -30055,7 +33767,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, }, - .dst_constraints = .{.{ .bool_vec = .dword }}, + .dst_constraints = .{ .{ .bool_vec = .dword }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .to_mem, .none } }, }, @@ -30071,7 +33783,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .type = .u32, .kind = .{ .reg = .edx } }, .unused, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .xor, .dst0d, .dst0d, ._, ._ }, @@ -30097,7 +33809,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, }, - .dst_constraints = .{.{ .bool_vec = .dword }}, + .dst_constraints = .{ .{ .bool_vec = .dword }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .to_mem, .none } }, }, @@ -30113,7 +33825,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .type = .u32, .kind = .{ .reg = .edx } }, .unused, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .xor, .dst0d, .dst0d, ._, ._ }, @@ -30139,7 +33851,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, }, - .dst_constraints = .{.{ .bool_vec = .dword }}, + .dst_constraints = .{ .{ .bool_vec = .dword }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .to_mem, .none } }, }, @@ -30155,7 +33867,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .type = .u32, .kind = .{ .reg = .edx } }, .unused, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .xor, .dst0d, .dst0d, ._, ._ }, @@ -30181,7 +33893,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, }, - .dst_constraints = .{.{ .bool_vec = .dword }}, + .dst_constraints = .{ .{ .bool_vec = .dword }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .to_mem, .none } }, }, @@ -30197,7 +33909,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .type = .u32, .kind = .{ .reg = .edx } }, .unused, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .xor, .dst0d, .dst0d, ._, ._ }, @@ -30223,7 +33935,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, }, - .dst_constraints = .{.{ .bool_vec = .dword }}, + .dst_constraints = .{ .{ .bool_vec = .dword }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .to_mem, .none } }, }, @@ -30239,7 +33951,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .type = .u32, .kind = .{ .reg = .edx } }, .unused, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .xor, .dst0d, .dst0d, ._, ._ }, @@ -30280,7 +33992,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .type = .u8, .kind = .{ .reg = .cl } }, .{ .type = .u64, .kind = .{ .reg = .rdx } }, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -30331,7 +34043,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .type = .u8, .kind = .{ .reg = .cl } }, .{ .type = .u64, .kind = .{ .reg = .rdx } }, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -30382,7 +34094,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .type = .u8, .kind = .{ .reg = .cl } }, .{ .type = .u64, .kind = .{ .reg = .rdx } }, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -30433,7 +34145,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .type = .u8, .kind = .{ .reg = .cl } }, .{ .type = .u64, .kind = .{ .reg = .rdx } }, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -30484,7 +34196,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .type = .u8, .kind = .{ .reg = .cl } }, .{ .type = .u64, .kind = .{ .reg = .rdx } }, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -30535,7 +34247,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .type = .u8, .kind = .{ .reg = .cl } }, .{ .type = .u64, .kind = .{ .reg = .rdx } }, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -30589,7 +34301,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .patterns = &.{ .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ }, .{ ._, .v_ss, .sqrt, .dst0x, .dst0x, .dst0d, ._ }, @@ -30613,7 +34325,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, @@ -30625,7 +34337,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ }, .{ ._, .v_ps, .sqrt, .dst0x, .dst0x, ._, ._ }, @@ -30638,7 +34350,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .v_ps, .cvtph2, .dst0y, .src0x, ._, ._ }, .{ ._, .v_ps, .sqrt, .dst0y, .dst0y, ._, ._ }, @@ -30661,7 +34373,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -30689,7 +34401,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -30718,7 +34430,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -30747,7 +34459,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -30777,7 +34489,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -30797,7 +34509,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, }, - .dst_temps = .{.{ .rc = .sse }}, + .dst_temps = .{ .{ .rc = .sse }, .unused }, .each = .{ .once = &.{ .{ ._, .v_ps, .xor, .dst0x, .dst0x, .dst0x, ._ }, .{ ._, .v_ss, .sqrt, .dst0x, .dst0x, .src0d, ._ }, @@ -30808,7 +34520,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .patterns = &.{ .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .v_ss, .sqrt, .dst0x, .src0x, .src0d, ._ }, } }, @@ -30818,7 +34530,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, }, - .dst_temps = .{.{ .rc = .sse }}, + .dst_temps = .{ .{ .rc = .sse }, .unused }, .each = .{ .once = &.{ .{ ._, ._ps, .xor, .dst0x, .dst0x, ._, ._ }, .{ ._, ._ss, .sqrt, .dst0x, .src0d, ._, ._ }, @@ -30829,7 +34541,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .patterns = &.{ .{ .src = .{ .to_mut_sse, .none, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{ .{ ._, ._ss, .sqrt, .dst0x, .src0d, ._, ._ }, } }, @@ -30851,7 +34563,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, @@ -30863,7 +34575,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .v_ps, .sqrt, .dst0x, .src0x, ._, ._ }, } }, @@ -30874,7 +34586,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, ._ps, .sqrt, .dst0x, .src0x, ._, ._ }, } }, @@ -30885,7 +34597,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .v_ps, .sqrt, .dst0y, .src0y, ._, ._ }, } }, @@ -30906,7 +34618,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -30932,7 +34644,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -30959,7 +34671,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -30987,7 +34699,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -31003,7 +34715,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, }, - .dst_temps = .{.{ .rc = .sse }}, + .dst_temps = .{ .{ .rc = .sse }, .unused }, .each = .{ .once = &.{ .{ ._, .v_pd, .xor, .dst0x, .dst0x, .dst0x, ._ }, .{ ._, .v_sd, .sqrt, .dst0x, .dst0x, .src0q, ._ }, @@ -31014,7 +34726,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .patterns = &.{ .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .v_sd, .sqrt, .dst0x, .src0x, .src0q, ._ }, } }, @@ -31024,7 +34736,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, }, - .dst_temps = .{.{ .rc = .sse }}, + .dst_temps = .{ .{ .rc = .sse }, .unused }, .each = .{ .once = &.{ .{ ._, ._pd, .xor, .dst0x, .dst0x, ._, ._ }, .{ ._, ._sd, .sqrt, .dst0x, .src0q, ._, ._ }, @@ -31035,7 +34747,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .patterns = &.{ .{ .src = .{ .to_mut_sse, .none, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{ .{ ._, ._sd, .sqrt, .dst0x, .src0q, ._, ._ }, } }, @@ -31057,7 +34769,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, @@ -31069,7 +34781,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .v_pd, .sqrt, .dst0x, .src0x, ._, ._ }, } }, @@ -31080,7 +34792,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, ._pd, .sqrt, .dst0x, .src0x, ._, ._ }, } }, @@ -31091,7 +34803,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .v_pd, .sqrt, .dst0y, .src0y, ._, ._ }, } }, @@ -31112,7 +34824,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -31138,7 +34850,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -31165,7 +34877,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -31193,7 +34905,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -31221,7 +34933,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -31250,7 +34962,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .x87 } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .x87 } }, .unused }, .each = .{ .once = &.{ .{ ._, .f_, .ld, .src0t, ._, ._, ._ }, .{ ._, .f_, .sqrt, ._, ._, ._, ._ }, @@ -31273,7 +34985,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -31301,7 +35013,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, @@ -31324,7 +35036,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -31352,7 +35064,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -31380,7 +35092,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -31424,7 +35136,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, @@ -31447,7 +35159,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -31476,7 +35188,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -31505,7 +35217,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -31535,7 +35247,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -31567,7 +35279,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, @@ -31590,7 +35302,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -31618,7 +35330,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -31646,7 +35358,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, @@ -31669,7 +35381,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -31697,7 +35409,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -31725,7 +35437,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -31754,7 +35466,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .reg = .st0 }}, + .dst_temps = .{ .{ .reg = .st0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, .v_dqa, .mov, .tmp0x, .mem(.src0x), ._, ._ }, @@ -31779,7 +35491,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .reg = .st0 }}, + .dst_temps = .{ .{ .reg = .st0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._dqa, .mov, .tmp0x, .mem(.src0x), ._, ._ }, @@ -31804,7 +35516,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .reg = .st0 }}, + .dst_temps = .{ .{ .reg = .st0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._ps, .mova, .tmp0x, .mem(.src0x), ._, ._ }, @@ -31829,7 +35541,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -31859,7 +35571,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -31889,7 +35601,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -31919,7 +35631,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, @@ -31942,7 +35654,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -31970,7 +35682,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -31998,7 +35710,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -32029,7 +35741,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .patterns = &.{ .{ .src = .{ .to_gpr, .none, .none } }, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .xor, .dst0d, .dst0d, ._, ._ }, @@ -32041,7 +35753,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .patterns = &.{ .{ .src = .{ .mut_mem, .none, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .cmp, .src0b, .si(0), ._, ._ }, @@ -32053,7 +35765,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .patterns = &.{ .{ .src = .{ .to_mut_gpr, .none, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .@"test", .src0b, .src0b, ._, ._ }, @@ -32066,7 +35778,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .xor, .dst0d, .dst0d, ._, ._ }, @@ -32079,7 +35791,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .patterns = &.{ .{ .src = .{ .to_gpr, .none, .none } }, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .xor, .dst0d, .dst0d, ._, ._ }, @@ -32091,7 +35803,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .patterns = &.{ .{ .src = .{ .mut_mem, .none, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .cmp, .src0w, .si(0), ._, ._ }, @@ -32103,7 +35815,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .patterns = &.{ .{ .src = .{ .to_mut_gpr, .none, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .@"test", .src0w, .src0w, ._, ._ }, @@ -32117,7 +35829,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_gpr, .none, .none } }, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .xor, .dst0d, .dst0d, ._, ._ }, @@ -32129,7 +35841,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .patterns = &.{ .{ .src = .{ .mut_mem, .none, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .cmp, .src0d, .si(0), ._, ._ }, @@ -32141,7 +35853,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .patterns = &.{ .{ .src = .{ .to_mut_gpr, .none, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .@"test", .src0d, .src0d, ._, ._ }, @@ -32155,7 +35867,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_gpr, .none, .none } }, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .xor, .dst0d, .dst0d, ._, ._ }, @@ -32168,7 +35880,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .patterns = &.{ .{ .src = .{ .mut_mem, .none, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .cmp, .src0q, .si(0), ._, ._ }, @@ -32181,7 +35893,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .patterns = &.{ .{ .src = .{ .to_mut_gpr, .none, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .@"test", .src0q, .src0q, ._, ._ }, @@ -32205,7 +35917,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -32228,7 +35940,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_mm, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .mmx } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .mmx } }, .unused }, .each = .{ .once = &.{ .{ ._, .p_b, .abs, .dst0q, .src0q, ._, ._ }, } }, @@ -32239,7 +35951,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_mm, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .mmx } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .mmx } }, .unused }, .each = .{ .once = &.{ .{ ._, .p_w, .abs, .dst0q, .src0q, ._, ._ }, } }, @@ -32250,7 +35962,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_mm, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .mmx } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .mmx } }, .unused }, .each = .{ .once = &.{ .{ ._, .p_d, .abs, .dst0q, .src0q, ._, ._ }, } }, @@ -32261,7 +35973,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .p_b, .abs, .dst0x, .src0x, ._, ._ }, } }, @@ -32272,7 +35984,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .p_w, .abs, .dst0x, .src0x, ._, ._ }, } }, @@ -32283,7 +35995,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .p_d, .abs, .dst0x, .src0x, ._, ._ }, } }, @@ -32294,7 +36006,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .vp_b, .abs, .dst0x, .src0x, ._, ._ }, } }, @@ -32305,7 +36017,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .vp_w, .abs, .dst0x, .src0x, ._, ._ }, } }, @@ -32316,7 +36028,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .vp_d, .abs, .dst0x, .src0x, ._, ._ }, } }, @@ -32327,7 +36039,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .vp_b, .abs, .dst0y, .src0y, ._, ._ }, } }, @@ -32338,7 +36050,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .vp_w, .abs, .dst0y, .src0y, ._, ._ }, } }, @@ -32349,7 +36061,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .vp_d, .abs, .dst0y, .src0y, ._, ._ }, } }, @@ -32370,7 +36082,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -32396,7 +36108,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -32422,7 +36134,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -32448,7 +36160,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -32474,7 +36186,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -32500,7 +36212,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -32526,7 +36238,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -32552,7 +36264,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -32578,7 +36290,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -32604,7 +36316,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -32630,7 +36342,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -32656,7 +36368,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -32682,7 +36394,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -32711,7 +36423,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -32740,7 +36452,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -32768,7 +36480,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -32797,7 +36509,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -32824,7 +36536,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -32853,7 +36565,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -32880,7 +36592,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -32909,7 +36621,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -32937,7 +36649,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -32966,7 +36678,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, @@ -33003,7 +36715,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, .{ ._, .v_ps, .@"and", .dst0x, .src0x, .lea(.tmp0x), ._ }, @@ -33025,7 +36737,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, .{ ._, ._ps, .@"and", .dst0x, .lea(.tmp0x), ._, ._ }, @@ -33047,7 +36759,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, .{ ._, .v_ps, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ }, @@ -33069,7 +36781,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, .{ ._, .v_pd, .@"and", .dst0x, .src0x, .lea(.tmp0x), ._ }, @@ -33091,7 +36803,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, .{ ._, ._pd, .@"and", .dst0x, .lea(.tmp0x), ._, ._ }, @@ -33113,7 +36825,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, .{ ._, .v_pd, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ }, @@ -33136,7 +36848,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .x87 } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .x87 } }, .unused }, .each = .{ .once = &.{ .{ ._, .f_, .ld, .src0t, ._, ._, ._ }, .{ ._, .f_, .abs, ._, ._, ._, ._ }, @@ -33159,7 +36871,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, .{ ._, .vp_, .@"and", .dst0x, .src0x, .lea(.tmp0x), ._ }, @@ -33181,7 +36893,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, .{ ._, .p_, .@"and", .dst0x, .lea(.tmp0x), ._, ._ }, @@ -33203,7 +36915,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, .{ ._, ._ps, .@"and", .dst0x, .lea(.tmp0x), ._, ._ }, @@ -33225,7 +36937,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, .{ ._, .vp_, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ }, @@ -33247,7 +36959,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, .{ ._, .v_pd, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ }, @@ -33269,7 +36981,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, .{ ._, .v_ps, .mova, .tmp2y, .lea(.tmp0y), ._, ._ }, @@ -33296,7 +37008,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, .{ ._, ._ps, .mova, .tmp2x, .lea(.tmp0x), ._, ._ }, @@ -33324,7 +37036,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, .{ ._, .v_pd, .mova, .tmp2y, .lea(.tmp0y), ._, ._ }, @@ -33351,7 +37063,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, .{ ._, ._pd, .mova, .tmp2x, .lea(.tmp0x), ._, ._ }, @@ -33379,7 +37091,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, .{ ._, .v_dqa, .mov, .tmp2y, .lea(.tmp0y), ._, ._ }, @@ -33406,7 +37118,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, .{ ._, .v_pd, .mova, .tmp2y, .lea(.tmp0y), ._, ._ }, @@ -33433,7 +37145,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, .{ ._, ._dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ }, @@ -33461,7 +37173,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, .{ ._, ._ps, .mova, .tmp2x, .lea(.tmp0x), ._, ._ }, @@ -33504,7 +37216,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .patterns = &.{ .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ }, .{ ._, .v_ss, .round, .dst0x, .dst0x, .dst0d, .rm(.{ .direction = direction, .precision = .inexact }) }, @@ -33533,7 +37245,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, @@ -33545,7 +37257,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ }, .{ ._, .v_ps, .round, .dst0x, .dst0x, .rm(.{ .direction = direction, .precision = .inexact }), ._ }, @@ -33558,7 +37270,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .v_ps, .cvtph2, .dst0y, .src0x, ._, ._ }, .{ ._, .v_ps, .round, .dst0y, .dst0y, .rm(.{ .direction = direction, .precision = .inexact }), ._ }, @@ -33581,7 +37293,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -33614,7 +37326,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -33648,7 +37360,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -33682,7 +37394,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -33717,7 +37429,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -33737,7 +37449,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, }, - .dst_temps = .{.{ .rc = .sse }}, + .dst_temps = .{ .{ .rc = .sse }, .unused }, .each = .{ .once = &.{ .{ ._, .v_ps, .xor, .dst0x, .dst0x, .dst0x, ._ }, .{ ._, .v_ss, .round, .dst0x, .dst0x, .src0d, .rm(.{ .direction = direction, .precision = .inexact }) }, @@ -33748,7 +37460,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .patterns = &.{ .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .v_ss, .round, .dst0x, .src0x, .src0d, .rm(.{ .direction = direction, .precision = .inexact }) }, } }, @@ -33758,7 +37470,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, }, - .dst_temps = .{.{ .rc = .sse }}, + .dst_temps = .{ .{ .rc = .sse }, .unused }, .each = .{ .once = &.{ .{ ._, ._ps, .xor, .dst0x, .dst0x, ._, ._ }, .{ ._, ._ss, .round, .dst0x, .src0d, .rm(.{ .direction = direction, .precision = .inexact }), ._ }, @@ -33769,7 +37481,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .patterns = &.{ .{ .src = .{ .to_mut_sse, .none, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{ .{ ._, ._ss, .round, .dst0x, .src0d, .rm(.{ .direction = direction, .precision = .inexact }), ._ }, } }, @@ -33796,7 +37508,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, @@ -33808,7 +37520,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .v_ps, .round, .dst0x, .src0x, .rm(.{ .direction = direction, .precision = .inexact }), ._ }, } }, @@ -33819,7 +37531,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, ._ps, .round, .dst0x, .src0x, .rm(.{ .direction = direction, .precision = .inexact }), ._ }, } }, @@ -33830,7 +37542,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .v_ps, .round, .dst0y, .src0y, .rm(.{ .direction = direction, .precision = .inexact }), ._ }, } }, @@ -33851,7 +37563,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -33880,7 +37592,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -33915,7 +37627,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -33948,7 +37660,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -33964,7 +37676,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, }, - .dst_temps = .{.{ .rc = .sse }}, + .dst_temps = .{ .{ .rc = .sse }, .unused }, .each = .{ .once = &.{ .{ ._, .v_pd, .xor, .dst0x, .dst0x, .dst0x, ._ }, .{ ._, .v_sd, .round, .dst0x, .dst0x, .src0q, .rm(.{ .direction = direction, .precision = .inexact }) }, @@ -33975,7 +37687,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .patterns = &.{ .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .v_sd, .round, .dst0x, .src0x, .src0q, .rm(.{ .direction = direction, .precision = .inexact }) }, } }, @@ -33985,7 +37697,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, }, - .dst_temps = .{.{ .rc = .sse }}, + .dst_temps = .{ .{ .rc = .sse }, .unused }, .each = .{ .once = &.{ .{ ._, ._pd, .xor, .dst0x, .dst0x, ._, ._ }, .{ ._, ._sd, .round, .dst0x, .src0q, .rm(.{ .direction = direction, .precision = .inexact }), ._ }, @@ -33996,7 +37708,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .patterns = &.{ .{ .src = .{ .to_mut_sse, .none, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{ .{ ._, ._sd, .round, .dst0x, .src0q, .rm(.{ .direction = direction, .precision = .inexact }), ._ }, } }, @@ -34023,7 +37735,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, @@ -34035,7 +37747,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .v_pd, .round, .dst0x, .src0x, .rm(.{ .direction = direction, .precision = .inexact }), ._ }, } }, @@ -34046,7 +37758,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, ._pd, .round, .dst0x, .src0x, .rm(.{ .direction = direction, .precision = .inexact }), ._ }, } }, @@ -34057,7 +37769,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .v_pd, .round, .dst0y, .src0y, .rm(.{ .direction = direction, .precision = .inexact }), ._ }, } }, @@ -34078,7 +37790,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -34107,7 +37819,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -34142,7 +37854,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -34175,7 +37887,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -34208,7 +37920,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -34242,7 +37954,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .reg = .st0 }}, + .dst_temps = .{ .{ .reg = .st0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, .v_dqa, .mov, .tmp0x, .mem(.src0x), ._, ._ }, @@ -34272,7 +37984,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .reg = .st0 }}, + .dst_temps = .{ .{ .reg = .st0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._dqa, .mov, .tmp0x, .mem(.src0x), ._, ._ }, @@ -34302,7 +38014,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .reg = .st0 }}, + .dst_temps = .{ .{ .reg = .st0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._ps, .mova, .tmp0x, .mem(.src0x), ._, ._ }, @@ -34332,7 +38044,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -34367,7 +38079,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -34402,7 +38114,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -34437,7 +38149,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, @@ -34465,7 +38177,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -34498,7 +38210,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -34531,7 +38243,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -34573,7 +38285,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, .{ ._, .v_ps, .xor, .dst0x, .src0x, .lea(.tmp0x), ._ }, @@ -34595,7 +38307,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, .{ ._, ._ps, .xor, .dst0x, .lea(.tmp0x), ._, ._ }, @@ -34617,7 +38329,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, .{ ._, .v_ps, .xor, .dst0y, .src0y, .lea(.tmp0y), ._ }, @@ -34639,7 +38351,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, .{ ._, .v_pd, .xor, .dst0x, .src0x, .lea(.tmp0x), ._ }, @@ -34661,7 +38373,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, .{ ._, ._pd, .xor, .dst0x, .lea(.tmp0x), ._, ._ }, @@ -34683,7 +38395,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, .{ ._, .v_pd, .xor, .dst0y, .src0y, .lea(.tmp0y), ._ }, @@ -34706,7 +38418,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .x87 } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .x87 } }, .unused }, .each = .{ .once = &.{ .{ ._, .f_, .ld, .src0t, ._, ._, ._ }, .{ ._, .f_, .chs, ._, ._, ._, ._ }, @@ -34729,7 +38441,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, .{ ._, .vp_, .xor, .dst0x, .src0x, .lea(.tmp0x), ._ }, @@ -34751,7 +38463,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, .{ ._, .p_, .xor, .dst0x, .lea(.tmp0x), ._, ._ }, @@ -34773,7 +38485,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, .{ ._, ._ps, .xor, .dst0x, .lea(.tmp0x), ._, ._ }, @@ -34795,7 +38507,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, .{ ._, .vp_, .xor, .dst0y, .src0y, .lea(.tmp0y), ._ }, @@ -34817,7 +38529,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, .{ ._, .v_pd, .xor, .dst0y, .src0y, .lea(.tmp0y), ._ }, @@ -34839,7 +38551,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, .{ ._, .v_ps, .mova, .tmp2y, .lea(.tmp0y), ._, ._ }, @@ -34866,7 +38578,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, .{ ._, ._ps, .mova, .tmp2x, .lea(.tmp0x), ._, ._ }, @@ -34894,7 +38606,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, .{ ._, .v_pd, .mova, .tmp2y, .lea(.tmp0y), ._, ._ }, @@ -34921,7 +38633,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, .{ ._, ._pd, .mova, .tmp2x, .lea(.tmp0x), ._, ._ }, @@ -34949,7 +38661,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, .{ ._, .v_dqa, .mov, .tmp2y, .lea(.tmp0y), ._, ._ }, @@ -34976,7 +38688,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, .{ ._, .v_pd, .mova, .tmp2y, .lea(.tmp0y), ._, ._ }, @@ -35003,7 +38715,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, .{ ._, ._dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ }, @@ -35031,7 +38743,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, .{ ._, ._ps, .mova, .tmp2x, .lea(.tmp0x), ._, ._ }, @@ -35094,10 +38806,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .cc = switch (strict) { + .dst_temps = .{ .{ .cc = switch (strict) { true => .a, false => .ae, - } }}, + } }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, .v_ps, .cvtph2, .tmp0x, .src0q, ._, ._ }, @@ -35122,10 +38834,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .cc = switch (strict) { + .dst_temps = .{ .{ .cc = switch (strict) { true => .l, false => .le, - } }}, + } }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, @@ -35138,10 +38850,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_sse, .to_sse, .none }, .commute = .{ 0, 1 } }, }, - .dst_temps = .{.{ .cc = switch (strict) { + .dst_temps = .{ .{ .cc = switch (strict) { true => .a, false => .ae, - } }}, + } }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, .v_ss, .ucomi, .src0x, .src1d, ._, ._ }, @@ -35153,10 +38865,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_sse, .to_sse, .none }, .commute = .{ 0, 1 } }, }, - .dst_temps = .{.{ .cc = switch (strict) { + .dst_temps = .{ .{ .cc = switch (strict) { true => .a, false => .ae, - } }}, + } }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._ss, .ucomi, .src0x, .src1d, ._, ._ }, @@ -35168,10 +38880,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_sse, .to_sse, .none }, .commute = .{ 0, 1 } }, }, - .dst_temps = .{.{ .cc = switch (strict) { + .dst_temps = .{ .{ .cc = switch (strict) { true => .a, false => .ae, - } }}, + } }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, .v_sd, .ucomi, .src0x, .src1q, ._, ._ }, @@ -35183,10 +38895,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_sse, .to_sse, .none }, .commute = .{ 0, 1 } }, }, - .dst_temps = .{.{ .cc = switch (strict) { + .dst_temps = .{ .{ .cc = switch (strict) { true => .a, false => .ae, - } }}, + } }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._sd, .ucomi, .src0x, .src1q, ._, ._ }, @@ -35208,10 +38920,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .cc = switch (strict) { + .dst_temps = .{ .{ .cc = switch (strict) { true => .a, false => .ae, - } }}, + } }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, .f_, .ld, .src1q, ._, ._, ._ }, @@ -35236,10 +38948,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .cc = switch (strict) { + .dst_temps = .{ .{ .cc = switch (strict) { true => .a, false => .ae, - } }}, + } }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, .f_, .ld, .src1q, ._, ._, ._ }, @@ -35265,10 +38977,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .cc = switch (strict) { + .dst_temps = .{ .{ .cc = switch (strict) { true => .z, false => .nc, - } }}, + } }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, .f_, .ld, .src1q, ._, ._, ._ }, @@ -35298,10 +39010,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .cc = switch (strict) { + .dst_temps = .{ .{ .cc = switch (strict) { true => .a, false => .ae, - } }}, + } }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, .f_, .ld, .src0t, ._, ._, ._ }, @@ -35324,10 +39036,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .cc = switch (strict) { + .dst_temps = .{ .{ .cc = switch (strict) { true => .a, false => .ae, - } }}, + } }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, .f_, .ld, .src1t, ._, ._, ._ }, @@ -35354,10 +39066,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .cc = switch (strict) { + .dst_temps = .{ .{ .cc = switch (strict) { true => .a, false => .ae, - } }}, + } }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, .f_, .ld, .src0t, ._, ._, ._ }, @@ -35382,10 +39094,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .cc = switch (strict) { + .dst_temps = .{ .{ .cc = switch (strict) { true => .z, false => .nc, - } }}, + } }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, .f_, .ld, .src1t, ._, ._, ._ }, @@ -35415,10 +39127,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .cc = switch (strict) { + .dst_temps = .{ .{ .cc = switch (strict) { true => .z, false => .nc, - } }}, + } }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, .f_, .ld, .src0t, ._, ._, ._ }, @@ -35447,10 +39159,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .cc = switch (strict) { + .dst_temps = .{ .{ .cc = switch (strict) { true => .l, false => .le, - } }}, + } }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, @@ -35521,7 +39233,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .to_gpr, .mem, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_gpr, .to_gpr, .none } }, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .xor, .dst0d, .dst0d, ._, ._ }, @@ -35576,10 +39288,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .cc = switch (optimized) { + .dst_temps = .{ .{ .cc = switch (optimized) { false => .z_and_np, true => .z, - } }}, + } }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, .v_ps, .cvtph2, .tmp0x, .src0q, ._, ._ }, @@ -35604,7 +39316,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .cc = .z }}, + .dst_temps = .{ .{ .cc = .z }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, @@ -35618,10 +39330,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_sse, .to_sse, .none } }, }, - .dst_temps = .{.{ .cc = switch (optimized) { + .dst_temps = .{ .{ .cc = switch (optimized) { false => .z_and_np, true => .z, - } }}, + } }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, .v_ss, .ucomi, .src0x, .src1d, ._, ._ }, @@ -35634,10 +39346,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_sse, .to_sse, .none } }, }, - .dst_temps = .{.{ .cc = switch (optimized) { + .dst_temps = .{ .{ .cc = switch (optimized) { false => .z_and_np, true => .z, - } }}, + } }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._ss, .ucomi, .src0x, .src1d, ._, ._ }, @@ -35650,10 +39362,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_sse, .to_sse, .none } }, }, - .dst_temps = .{.{ .cc = switch (optimized) { + .dst_temps = .{ .{ .cc = switch (optimized) { false => .z_and_np, true => .z, - } }}, + } }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, .v_sd, .ucomi, .src0x, .src1q, ._, ._ }, @@ -35666,10 +39378,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_sse, .to_sse, .none } }, }, - .dst_temps = .{.{ .cc = switch (optimized) { + .dst_temps = .{ .{ .cc = switch (optimized) { false => .z_and_np, true => .z, - } }}, + } }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._sd, .ucomi, .src0x, .src1q, ._, ._ }, @@ -35691,10 +39403,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .cc = switch (optimized) { + .dst_temps = .{ .{ .cc = switch (optimized) { false => .z_and_np, true => .z, - } }}, + } }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, .f_, .ld, .src1q, ._, ._, ._ }, @@ -35719,10 +39431,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .cc = switch (optimized) { + .dst_temps = .{ .{ .cc = switch (optimized) { false => .z_and_np, true => .z, - } }}, + } }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, .f_, .ld, .src1q, ._, ._, ._ }, @@ -35748,10 +39460,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .cc = switch (optimized) { + .dst_temps = .{ .{ .cc = switch (optimized) { false => .z, true => .nz, - } }}, + } }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = switch (optimized) { false => &.{ @@ -35789,10 +39501,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .cc = switch (optimized) { + .dst_temps = .{ .{ .cc = switch (optimized) { false => .z_and_np, true => .z, - } }}, + } }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, .f_, .ld, .src0t, ._, ._, ._ }, @@ -35815,10 +39527,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .cc = switch (optimized) { + .dst_temps = .{ .{ .cc = switch (optimized) { false => .z_and_np, true => .z, - } }}, + } }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, .f_, .ld, .src1t, ._, ._, ._ }, @@ -35846,10 +39558,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .cc = switch (optimized) { + .dst_temps = .{ .{ .cc = switch (optimized) { false => .z_and_np, true => .z, - } }}, + } }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, .f_, .ld, .src0t, ._, ._, ._ }, @@ -35874,10 +39586,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .cc = switch (optimized) { + .dst_temps = .{ .{ .cc = switch (optimized) { false => .z, true => .nz, - } }}, + } }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = switch (optimized) { false => &.{ @@ -35915,10 +39627,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .cc = switch (optimized) { + .dst_temps = .{ .{ .cc = switch (optimized) { false => .z, true => .nz, - } }}, + } }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = switch (optimized) { false => &.{ @@ -35953,7 +39665,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .cc = .z }}, + .dst_temps = .{ .{ .cc = .z }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, @@ -36064,12 +39776,63 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { try cg.genLocalDebugInfo(inst, ops[0].tracking(cg).short); try ops[0].die(cg); }, + .is_null => if (use_old) try cg.airIsNull(inst) else { + const un_op = air_datas[@intFromEnum(inst)].un_op; + const opt_ty = cg.typeOf(un_op); + const opt_repr_is_pl = opt_ty.optionalReprIsPayload(zcu); + const opt_child_ty = opt_ty.optionalChild(zcu); + const opt_child_abi_size: u31 = @intCast(opt_child_ty.abiSize(zcu)); + try cg.spillEflagsIfOccupied(); + var ops = try cg.tempsFromOperands(inst, .{un_op}); + while (try ops[0].toBase(false, cg)) {} + try cg.asmMemoryImmediate( + .{ ._, .cmp }, + try ops[0].tracking(cg).short.mem(cg, .{ + .size = if (!opt_repr_is_pl) + .byte + else if (opt_child_ty.isSlice(zcu)) + .ptr + else + .fromSize(opt_child_abi_size), + .disp = if (opt_repr_is_pl) 0 else opt_child_abi_size, + }), + .u(0), + ); + const is_null = try cg.tempInit(.bool, .{ .eflags = .e }); + try is_null.finish(inst, &.{un_op}, &ops, cg); + }, + .is_non_null => if (use_old) try cg.airIsNonNull(inst) else { + const un_op = air_datas[@intFromEnum(inst)].un_op; + const opt_ty = cg.typeOf(un_op); + const opt_repr_is_pl = opt_ty.optionalReprIsPayload(zcu); + const opt_child_ty = opt_ty.optionalChild(zcu); + const opt_child_abi_size: u31 = @intCast(opt_child_ty.abiSize(zcu)); + try cg.spillEflagsIfOccupied(); + var ops = try cg.tempsFromOperands(inst, .{un_op}); + while (try ops[0].toBase(false, cg)) {} + try cg.asmMemoryImmediate( + .{ ._, .cmp }, + try ops[0].tracking(cg).short.mem(cg, .{ + .size = if (!opt_repr_is_pl) + .byte + else if (opt_child_ty.isSlice(zcu)) + .ptr + else + .fromSize(opt_child_abi_size), + .disp = if (opt_repr_is_pl) 0 else opt_child_abi_size, + }), + .u(0), + ); + const is_non_null = try cg.tempInit(.bool, .{ .eflags = .ne }); + try is_non_null.finish(inst, &.{un_op}, &ops, cg); + }, .is_null_ptr => if (use_old) try cg.airIsNullPtr(inst) else { const un_op = air_datas[@intFromEnum(inst)].un_op; const opt_ty = cg.typeOf(un_op).childType(zcu); const opt_repr_is_pl = opt_ty.optionalReprIsPayload(zcu); const opt_child_ty = opt_ty.optionalChild(zcu); const opt_child_abi_size: u31 = @intCast(opt_child_ty.abiSize(zcu)); + try cg.spillEflagsIfOccupied(); var ops = try cg.tempsFromOperands(inst, .{un_op}); if (!opt_repr_is_pl) try ops[0].toOffset(opt_child_abi_size, cg); while (try ops[0].toLea(cg)) {} @@ -36078,7 +39841,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { try ops[0].tracking(cg).short.deref().mem(cg, .{ .size = if (!opt_repr_is_pl) .byte else if (opt_child_ty.isSlice(zcu)) - .qword + .ptr else .fromSize(opt_child_abi_size) }), .u(0), @@ -36092,6 +39855,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { const opt_repr_is_pl = opt_ty.optionalReprIsPayload(zcu); const opt_child_ty = opt_ty.optionalChild(zcu); const opt_child_abi_size: u31 = @intCast(opt_child_ty.abiSize(zcu)); + try cg.spillEflagsIfOccupied(); var ops = try cg.tempsFromOperands(inst, .{un_op}); if (!opt_repr_is_pl) try ops[0].toOffset(opt_child_abi_size, cg); while (try ops[0].toLea(cg)) {} @@ -36100,7 +39864,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { try ops[0].tracking(cg).short.deref().mem(cg, .{ .size = if (!opt_repr_is_pl) .byte else if (opt_child_ty.isSlice(zcu)) - .qword + .ptr else .fromSize(opt_child_abi_size) }), .u(0), @@ -36108,12 +39872,45 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { const is_non_null = try cg.tempInit(.bool, .{ .eflags = .ne }); try is_non_null.finish(inst, &.{un_op}, &ops, cg); }, + .is_err => if (use_old) try cg.airIsErr(inst) else { + const un_op = air_datas[@intFromEnum(inst)].un_op; + const eu_ty = cg.typeOf(un_op); + const eu_err_ty = eu_ty.errorUnionSet(zcu); + const eu_pl_ty = eu_ty.errorUnionPayload(zcu); + const eu_err_off: u31 = @intCast(codegen.errUnionErrorOffset(eu_pl_ty, zcu)); + try cg.spillEflagsIfOccupied(); + var ops = try cg.tempsFromOperands(inst, .{un_op}); + while (try ops[0].toBase(false, cg)) {} + try cg.asmMemoryImmediate(.{ ._, .cmp }, try ops[0].tracking(cg).short.mem(cg, .{ + .size = cg.memSize(eu_err_ty), + .disp = eu_err_off, + }), .u(0)); + const is_err = try cg.tempInit(.bool, .{ .eflags = .ne }); + try is_err.finish(inst, &.{un_op}, &ops, cg); + }, + .is_non_err => if (use_old) try cg.airIsNonErr(inst) else { + const un_op = air_datas[@intFromEnum(inst)].un_op; + const eu_ty = cg.typeOf(un_op); + const eu_err_ty = eu_ty.errorUnionSet(zcu); + const eu_pl_ty = eu_ty.errorUnionPayload(zcu); + const eu_err_off: u31 = @intCast(codegen.errUnionErrorOffset(eu_pl_ty, zcu)); + try cg.spillEflagsIfOccupied(); + var ops = try cg.tempsFromOperands(inst, .{un_op}); + while (try ops[0].toBase(false, cg)) {} + try cg.asmMemoryImmediate(.{ ._, .cmp }, try ops[0].tracking(cg).short.mem(cg, .{ + .size = cg.memSize(eu_err_ty), + .disp = eu_err_off, + }), .u(0)); + const is_non_err = try cg.tempInit(.bool, .{ .eflags = .e }); + try is_non_err.finish(inst, &.{un_op}, &ops, cg); + }, .is_err_ptr => if (use_old) try cg.airIsErrPtr(inst) else { const un_op = air_datas[@intFromEnum(inst)].un_op; const eu_ty = cg.typeOf(un_op).childType(zcu); const eu_err_ty = eu_ty.errorUnionSet(zcu); const eu_pl_ty = eu_ty.errorUnionPayload(zcu); - const eu_err_off: i32 = @intCast(codegen.errUnionErrorOffset(eu_pl_ty, zcu)); + const eu_err_off: u31 = @intCast(codegen.errUnionErrorOffset(eu_pl_ty, zcu)); + try cg.spillEflagsIfOccupied(); var ops = try cg.tempsFromOperands(inst, .{un_op}); try ops[0].toOffset(eu_err_off, cg); while (try ops[0].toLea(cg)) {} @@ -36130,7 +39927,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { const eu_ty = cg.typeOf(un_op).childType(zcu); const eu_err_ty = eu_ty.errorUnionSet(zcu); const eu_pl_ty = eu_ty.errorUnionPayload(zcu); - const eu_err_off: i32 = @intCast(codegen.errUnionErrorOffset(eu_pl_ty, zcu)); + const eu_err_off: u31 = @intCast(codegen.errUnionErrorOffset(eu_pl_ty, zcu)); + try cg.spillEflagsIfOccupied(); var ops = try cg.tempsFromOperands(inst, .{un_op}); try ops[0].toOffset(eu_err_off, cg); while (try ops[0].toLea(cg)) {} @@ -36202,40 +40000,40 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { cg.select(&res, &.{ty_op.ty.toType()}, &ops, comptime &.{ .{ .required_features = .{ .f16c, null, null, null }, .src_constraints = .{ .{ .scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_float = .{ .of = .word, .is = .word } }}, + .dst_constraints = .{ .{ .scalar_float = .{ .of = .word, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .v_, .cvtps2ph, .dst0q, .src0x, .rm(.{}), ._ }, } }, }, .{ .required_features = .{ .f16c, null, null, null }, .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_float = .{ .of = .qword, .is = .word } }}, + .dst_constraints = .{ .{ .scalar_float = .{ .of = .qword, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .v_, .cvtps2ph, .dst0q, .src0x, .rm(.{}), ._ }, } }, }, .{ .required_features = .{ .f16c, null, null, null }, .src_constraints = .{ .{ .scalar_float = .{ .of = .yword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_float = .{ .of = .xword, .is = .word } }}, + .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .v_, .cvtps2ph, .dst0x, .src0y, .rm(.{}), ._ }, } }, }, .{ .required_features = .{ .sse, null, null, null }, .src_constraints = .{ .{ .scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_float = .{ .of = .word, .is = .word } }}, + .dst_constraints = .{ .{ .scalar_float = .{ .of = .word, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, }, @@ -36251,7 +40049,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, @@ -36259,7 +40057,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .f16c, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -36274,7 +40072,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -36286,7 +40084,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .word, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -36302,7 +40100,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -36315,7 +40113,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse4_1, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .word, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -36331,7 +40129,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -36344,7 +40142,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .word, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -36360,7 +40158,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -36374,7 +40172,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .word, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -36390,7 +40188,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -36405,7 +40203,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, null, null, null }, .src_constraints = .{ .{ .scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_float = .{ .of = .word, .is = .word } }}, + .dst_constraints = .{ .{ .scalar_float = .{ .of = .word, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, }, @@ -36421,7 +40219,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, @@ -36429,7 +40227,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .word, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -36445,7 +40243,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -36458,7 +40256,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse4_1, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .word, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -36474,7 +40272,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -36487,7 +40285,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .word, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -36503,7 +40301,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -36517,7 +40315,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .word, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -36533,7 +40331,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -36549,11 +40347,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_float = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .scalar_float = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, }, - .dst_temps = .{.{ .rc = .sse }}, + .dst_temps = .{ .{ .rc = .sse }, .unused }, .each = .{ .once = &.{ .{ ._, .v_ps, .xor, .dst0x, .dst0x, .dst0x, ._ }, .{ ._, .v_ss, .cvtsd2, .dst0x, .dst0x, .src0q, ._ }, @@ -36561,23 +40359,23 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_float = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .scalar_float = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .v_ss, .cvtsd2, .dst0x, .src0x, .src0q, ._ }, } }, }, .{ .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ .{ .scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_float = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .scalar_float = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .rc = .sse }}, + .dst_temps = .{ .{ .rc = .sse }, .unused }, .each = .{ .once = &.{ .{ ._, ._ps, .xor, .dst0x, .dst0x, ._, ._ }, .{ ._, ._ss, .cvtsd2, .dst0x, .src0q, ._, ._ }, @@ -36585,7 +40383,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .x87, null, null, null }, .src_constraints = .{ .{ .scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_float = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .scalar_float = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -36600,7 +40398,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .each = .{ .once = &.{ .{ ._, .f_, .ld, .src0q, ._, ._, ._ }, .{ ._, .f_p, .st, .dst0d, ._, ._, ._ }, @@ -36608,43 +40406,43 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_float = .{ .of = .qword, .is = .dword } }}, + .dst_constraints = .{ .{ .scalar_float = .{ .of = .qword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .v_ps, .cvtpd2, .dst0x, .src0x, ._, ._ }, } }, }, .{ .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_float = .{ .of = .qword, .is = .dword } }}, + .dst_constraints = .{ .{ .scalar_float = .{ .of = .qword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, ._ps, .cvtpd2, .dst0x, .src0x, ._, ._ }, } }, }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .scalar_float = .{ .of = .yword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_float = .{ .of = .xword, .is = .dword } }}, + .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .v_ps, .cvtpd2, .dst0x, .src0y, ._, ._ }, } }, }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .yword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -36659,7 +40457,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -36671,7 +40469,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .yword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -36686,7 +40484,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -36698,7 +40496,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .x87, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -36713,7 +40511,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -36725,7 +40523,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, - .dst_constraints = .{.{ .scalar_float = .{ .of = .word, .is = .word } }}, + .dst_constraints = .{ .{ .scalar_float = .{ .of = .word, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -36741,7 +40539,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .reg = .xmm0 }}, + .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, .v_dqa, .mov, .dst0x, .mem(.src0x), ._, ._ }, @@ -36751,7 +40549,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, - .dst_constraints = .{.{ .scalar_float = .{ .of = .word, .is = .word } }}, + .dst_constraints = .{ .{ .scalar_float = .{ .of = .word, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -36767,7 +40565,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .reg = .xmm0 }}, + .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._dqa, .mov, .dst0x, .mem(.src0x), ._, ._ }, @@ -36777,7 +40575,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, null, null, null }, .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, - .dst_constraints = .{.{ .scalar_float = .{ .of = .word, .is = .word } }}, + .dst_constraints = .{ .{ .scalar_float = .{ .of = .word, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -36793,7 +40591,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .reg = .xmm0 }}, + .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._ps, .mova, .dst0x, .mem(.src0x), ._, ._ }, @@ -36803,7 +40601,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .word, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -36819,7 +40617,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -36833,7 +40631,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse4_1, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .word, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -36849,7 +40647,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -36863,7 +40661,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .word, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -36879,7 +40677,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -36894,7 +40692,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .word, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -36910,7 +40708,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -36926,7 +40724,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .x87, null, null, null }, .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, - .dst_constraints = .{.{ .scalar_float = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .scalar_float = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_x87, .none, .none } }, @@ -36942,7 +40740,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .each = .{ .once = &.{ .{ ._, .f_, .ld, .src0t, ._, ._, ._ }, .{ ._, .f_p, .st, .dst0d, ._, ._, ._ }, @@ -36950,7 +40748,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .x87, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -36965,7 +40763,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -36977,7 +40775,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .x87, null, null, null }, .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, - .dst_constraints = .{.{ .scalar_float = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .scalar_float = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_x87, .none, .none } }, @@ -36993,7 +40791,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .each = .{ .once = &.{ .{ ._, .f_, .ld, .src0t, ._, ._, ._ }, .{ ._, .f_p, .st, .dst0q, ._, ._, ._ }, @@ -37001,7 +40799,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .x87, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -37016,7 +40814,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -37028,7 +40826,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, null, null, null }, .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_float = .{ .of = .word, .is = .word } }}, + .dst_constraints = .{ .{ .scalar_float = .{ .of = .word, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, }, @@ -37044,7 +40842,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, @@ -37052,7 +40850,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .word, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -37068,7 +40866,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -37081,7 +40879,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse4_1, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .word, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -37097,7 +40895,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -37110,7 +40908,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .word, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -37126,7 +40924,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -37140,7 +40938,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .word, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -37156,7 +40954,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -37171,7 +40969,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, null, null, null }, .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_float = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .scalar_float = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, }, @@ -37187,7 +40985,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, @@ -37195,7 +40993,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -37211,7 +41009,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -37224,7 +41022,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -37240,7 +41038,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -37253,7 +41051,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -37269,7 +41067,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -37282,7 +41080,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, null, null, null }, .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_float = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .scalar_float = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, }, @@ -37298,7 +41096,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, @@ -37306,7 +41104,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -37322,7 +41120,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -37335,7 +41133,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -37351,7 +41149,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -37364,7 +41162,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -37380,7 +41178,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -37393,7 +41191,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, .x87, null, null }, .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_float = .{ .of = .xword, .is = .tbyte } }}, + .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, .patterns = &.{ .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, }, @@ -37409,7 +41207,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .reg = .st0 }}, + .dst_temps = .{ .{ .reg = .st0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, @@ -37417,7 +41215,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -37433,7 +41231,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -37447,7 +41245,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -37463,7 +41261,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -37477,7 +41275,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -37493,7 +41291,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -37522,42 +41320,42 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { cg.select(&res, &.{ty_op.ty.toType()}, &ops, comptime &.{ .{ .required_features = .{ .f16c, null, null, null }, .src_constraints = .{ .{ .scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .scalar_float = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .scalar_float = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ }, } }, }, .{ .required_features = .{ .f16c, null, null, null }, .src_constraints = .{ .{ .scalar_float = .{ .of = .qword, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .scalar_float = .{ .of = .xword, .is = .dword } }}, + .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ }, } }, }, .{ .required_features = .{ .f16c, null, null, null }, .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .scalar_float = .{ .of = .yword, .is = .dword } }}, + .dst_constraints = .{ .{ .scalar_float = .{ .of = .yword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .v_ps, .cvtph2, .dst0y, .src0x, ._, ._ }, } }, }, .{ .required_features = .{ .sse, null, null, null }, .src_constraints = .{ .{ .scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .scalar_float = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .scalar_float = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, }, @@ -37573,7 +41371,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, @@ -37581,7 +41379,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .f16c, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -37596,7 +41394,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -37608,7 +41406,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -37624,7 +41422,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -37638,7 +41436,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -37654,7 +41452,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -37668,7 +41466,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -37684,7 +41482,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -37699,11 +41497,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .f16c, null, null, null }, .src_constraints = .{ .{ .scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .scalar_float = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .scalar_float = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ }, .{ ._, .v_sd, .cvtss2, .dst0x, .dst0x, .dst0d, ._ }, @@ -37711,12 +41509,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .f16c, null, null, null }, .src_constraints = .{ .{ .scalar_float = .{ .of = .dword, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .scalar_float = .{ .of = .xword, .is = .qword } }}, + .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ }, .{ ._, .v_pd, .cvtps2, .dst0x, .dst0q, ._, ._ }, @@ -37724,12 +41522,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .f16c, null, null, null }, .src_constraints = .{ .{ .scalar_float = .{ .of = .qword, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .scalar_float = .{ .of = .yword, .is = .qword } }}, + .dst_constraints = .{ .{ .scalar_float = .{ .of = .yword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ }, .{ ._, .v_pd, .cvtps2, .dst0y, .dst0x, ._, ._ }, @@ -37737,7 +41535,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .f16c, null, null, null }, .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .scalar_float = .{ .of = .zword, .is = .qword } }}, + .dst_constraints = .{ .{ .scalar_float = .{ .of = .zword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, @@ -37753,7 +41551,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .each = .{ .once = &.{ .{ ._, .v_ps, .cvtph2, .tmp0y, .src0x, ._, ._ }, .{ ._, .v_pd, .cvtps2, .tmp1y, .tmp0x, ._, ._ }, @@ -37765,7 +41563,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, null, null, null }, .src_constraints = .{ .{ .scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .scalar_float = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .scalar_float = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, }, @@ -37781,7 +41579,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, @@ -37789,7 +41587,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .f16c, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .zword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .zword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -37804,7 +41602,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -37820,7 +41618,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -37836,7 +41634,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -37850,7 +41648,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -37866,7 +41664,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -37880,7 +41678,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -37896,7 +41694,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -37911,7 +41709,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .f16c, .x87, null, null }, .src_constraints = .{ .{ .scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .scalar_float = .{ .of = .xword, .is = .tbyte } }}, + .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, .patterns = &.{ .{ .src = .{ .to_sse, .none, .none } }, }, @@ -37926,7 +41724,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .x87 }}, + .dst_temps = .{ .{ .rc = .x87 }, .unused }, .each = .{ .once = &.{ .{ ._, .v_ps, .cvtph2, .tmp0x, .src0q, ._, ._ }, .{ ._, .v_ss, .mov, .mem(.tmp1d), .tmp0x, ._, ._ }, @@ -37936,7 +41734,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, .x87, null, null }, .src_constraints = .{ .{ .scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .scalar_float = .{ .of = .xword, .is = .tbyte } }}, + .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, .patterns = &.{ .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, }, @@ -37952,7 +41750,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .reg = .st0 }}, + .dst_temps = .{ .{ .reg = .st0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, @@ -37960,7 +41758,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -37976,7 +41774,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -37991,7 +41789,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -38007,7 +41805,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -38022,7 +41820,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -38038,7 +41836,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -38054,7 +41852,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, null, null, null }, .src_constraints = .{ .{ .scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .scalar_float = .{ .of = .xword, .is = .xword } }}, + .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .xword } }, .any }, .patterns = &.{ .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, }, @@ -38070,7 +41868,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, @@ -38078,7 +41876,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -38094,7 +41892,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -38108,7 +41906,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -38124,7 +41922,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -38138,7 +41936,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -38154,7 +41952,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -38169,11 +41967,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_float = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .scalar_float = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, }, - .dst_temps = .{.{ .rc = .sse }}, + .dst_temps = .{ .{ .rc = .sse }, .unused }, .each = .{ .once = &.{ .{ ._, .v_pd, .xor, .dst0x, .dst0x, .dst0x, ._ }, .{ ._, .v_sd, .cvtss2, .dst0x, .dst0x, .src0d, ._ }, @@ -38181,23 +41979,23 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_float = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .scalar_float = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .v_sd, .cvtss2, .dst0x, .src0x, .src0d, ._ }, } }, }, .{ .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ .{ .scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_float = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .scalar_float = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .rc = .sse }}, + .dst_temps = .{ .{ .rc = .sse }, .unused }, .each = .{ .once = &.{ .{ ._, ._pd, .xor, .dst0x, .dst0x, ._, ._ }, .{ ._, ._sd, .cvtss2, .dst0x, .src0d, ._, ._ }, @@ -38205,7 +42003,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .x87, null, null, null }, .src_constraints = .{ .{ .scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_float = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .scalar_float = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -38220,7 +42018,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .each = .{ .once = &.{ .{ ._, .f_, .ld, .src0d, ._, ._, ._ }, .{ ._, .f_p, .st, .dst0q, ._, ._, ._ }, @@ -38228,43 +42026,43 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .scalar_float = .{ .of = .qword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_float = .{ .of = .xword, .is = .qword } }}, + .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .v_pd, .cvtps2, .dst0x, .src0q, ._, ._ }, } }, }, .{ .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ .{ .scalar_float = .{ .of = .qword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_float = .{ .of = .xword, .is = .qword } }}, + .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, ._pd, .cvtps2, .dst0x, .src0q, ._, ._ }, } }, }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_float = .{ .of = .yword, .is = .qword } }}, + .dst_constraints = .{ .{ .scalar_float = .{ .of = .yword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .v_pd, .cvtps2, .dst0y, .src0x, ._, ._ }, } }, }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .yword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .yword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -38279,7 +42077,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -38291,7 +42089,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -38306,7 +42104,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -38318,7 +42116,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .x87, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -38333,7 +42131,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -38345,7 +42143,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .x87, null, null, null }, .src_constraints = .{ .{ .scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_float = .{ .of = .xword, .is = .tbyte } }}, + .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -38360,7 +42158,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .each = .{ .once = &.{ .{ ._, .f_, .ld, .src0d, ._, ._, ._ }, .{ ._, .f_p, .st, .dst0t, ._, ._, ._ }, @@ -38368,7 +42166,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .x87, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -38383,7 +42181,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -38395,7 +42193,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, null, null, null }, .src_constraints = .{ .{ .scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_float = .{ .of = .xword, .is = .xword } }}, + .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .xword } }, .any }, .patterns = &.{ .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, }, @@ -38411,7 +42209,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, @@ -38419,7 +42217,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -38435,7 +42233,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -38448,7 +42246,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -38464,7 +42262,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -38477,7 +42275,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -38493,7 +42291,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -38506,7 +42304,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .x87, null, null, null }, .src_constraints = .{ .{ .scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_float = .{ .of = .xword, .is = .tbyte } }}, + .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -38521,7 +42319,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .each = .{ .once = &.{ .{ ._, .f_, .ld, .src0q, ._, ._, ._ }, .{ ._, .f_p, .st, .dst0t, ._, ._, ._ }, @@ -38529,7 +42327,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .x87, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -38544,7 +42342,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -38556,7 +42354,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, null, null, null }, .src_constraints = .{ .{ .scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_float = .{ .of = .xword, .is = .xword } }}, + .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .xword } }, .any }, .patterns = &.{ .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, }, @@ -38572,7 +42370,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, @@ -38580,7 +42378,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -38596,7 +42394,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -38609,7 +42407,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -38625,7 +42423,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -38638,7 +42436,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -38654,7 +42452,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -38668,7 +42466,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, - .dst_constraints = .{.{ .scalar_float = .{ .of = .xword, .is = .xword } }}, + .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .xword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -38684,7 +42482,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .reg = .xmm0 }}, + .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, .v_dqa, .mov, .dst0x, .mem(.src0x), ._, ._ }, @@ -38694,7 +42492,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, - .dst_constraints = .{.{ .scalar_float = .{ .of = .xword, .is = .xword } }}, + .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .xword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -38710,7 +42508,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .reg = .xmm0 }}, + .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._dqa, .mov, .dst0x, .mem(.src0x), ._, ._ }, @@ -38720,7 +42518,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, null, null, null }, .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, - .dst_constraints = .{.{ .scalar_float = .{ .of = .xword, .is = .xword } }}, + .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .xword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -38736,7 +42534,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .reg = .xmm0 }}, + .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._ps, .mova, .dst0x, .mem(.src0x), ._, ._ }, @@ -38746,7 +42544,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -38762,7 +42560,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -38776,7 +42574,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -38792,7 +42590,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -38806,7 +42604,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -38822,7 +42620,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -38851,62 +42649,62 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { var ops = try cg.tempsFromOperands(inst, .{ty_op.operand}); var res: [1]Temp = undefined; cg.select(&res, &.{dst_ty}, &ops, if (dst_ty.scalarType(zcu).abiSize(zcu) <= src_ty.scalarType(zcu).abiSize(zcu)) comptime &.{ .{ - .dst_constraints = .{.{ .int = .dword }}, + .dst_constraints = .{ .{ .int = .dword }, .any }, .patterns = &.{ .{ .src = .{ .mut_mem, .none, .none } }, .{ .src = .{ .to_mut_gpr, .none, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{} }, }, .{ .required_features = .{ .@"64bit", null, null, null }, - .dst_constraints = .{.{ .int = .qword }}, + .dst_constraints = .{ .{ .int = .qword }, .any }, .patterns = &.{ .{ .src = .{ .mut_mem, .none, .none } }, .{ .src = .{ .to_mut_gpr, .none, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{} }, }, .{ - .dst_constraints = .{.{ .int = .byte }}, + .dst_constraints = .{ .{ .int = .byte }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .mov, .dst0b, .mem(.src0b), ._, ._ }, } }, }, .{ - .dst_constraints = .{.{ .int = .word }}, + .dst_constraints = .{ .{ .int = .word }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .mov, .dst0w, .mem(.src0w), ._, ._ }, } }, }, .{ - .dst_constraints = .{.{ .int = .dword }}, + .dst_constraints = .{ .{ .int = .dword }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .mov, .dst0d, .mem(.src0d), ._, ._ }, } }, }, .{ .required_features = .{ .@"64bit", null, null, null }, - .dst_constraints = .{.{ .int = .qword }}, + .dst_constraints = .{ .{ .int = .qword }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .mov, .dst0q, .mem(.src0q), ._, ._ }, } }, }, .{ .required_features = .{ .@"64bit", null, null, null }, - .dst_constraints = .{.{ .remainder_int = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .remainder_int = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -38921,7 +42719,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, @@ -38931,93 +42729,93 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, null, null, null }, .src_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .scalar_int = .{ .of = .xword, .is = .byte } }}, + .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .byte } }, .any }, .patterns = &.{ .{ .src = .{ .mut_mem, .none, .none } }, .{ .src = .{ .to_mut_sse, .none, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{} }, }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .scalar_int = .{ .of = .yword, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .scalar_int = .{ .of = .yword, .is = .byte } }}, + .dst_constraints = .{ .{ .scalar_int = .{ .of = .yword, .is = .byte } }, .any }, .patterns = &.{ .{ .src = .{ .mut_mem, .none, .none } }, .{ .src = .{ .to_mut_sse, .none, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{} }, }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .qword, .is = .byte } }}, + .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .qword, .is = .byte } }, .any }, .patterns = &.{ .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .vp_b, .ackssw, .dst0x, .src0x, .dst0x, ._ }, } }, }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .scalar_int = .{ .of = .qword, .is = .byte } }}, + .dst_constraints = .{ .{ .scalar_int = .{ .of = .qword, .is = .byte } }, .any }, .patterns = &.{ .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .vp_b, .ackusw, .dst0x, .src0x, .dst0x, ._ }, } }, }, .{ .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .qword, .is = .byte } }}, + .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .qword, .is = .byte } }, .any }, .patterns = &.{ .{ .src = .{ .to_mut_sse, .none, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{ .{ ._, .p_b, .ackssw, .dst0x, .dst0x, ._, ._ }, } }, }, .{ .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .scalar_int = .{ .of = .qword, .is = .byte } }}, + .dst_constraints = .{ .{ .scalar_int = .{ .of = .qword, .is = .byte } }, .any }, .patterns = &.{ .{ .src = .{ .to_mut_sse, .none, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{ .{ ._, .p_b, .ackusw, .dst0x, .dst0x, ._, ._ }, } }, }, .{ .required_features = .{ .avx2, null, null, null }, .src_constraints = .{ .{ .scalar_int = .{ .of = .yword, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .xword, .is = .byte } }}, + .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .byte } }, .any }, .patterns = &.{ .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .vp_b, .ackssw, .dst0y, .src0y, .dst0y, ._ }, } }, }, .{ .required_features = .{ .avx2, null, null, null }, .src_constraints = .{ .{ .scalar_int = .{ .of = .yword, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .scalar_int = .{ .of = .xword, .is = .byte } }}, + .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .byte } }, .any }, .patterns = &.{ .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .vp_b, .ackusw, .dst0y, .src0y, .dst0y, ._ }, } }, }, .{ .required_features = .{ .slow_incdec, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }}, + .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -39032,7 +42830,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -39043,7 +42841,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { } }, }, .{ .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }}, + .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -39058,7 +42856,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -39070,11 +42868,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .dword, .is = .byte } }}, + .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .dword, .is = .byte } }, .any }, .patterns = &.{ .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .vp_w, .ackssd, .dst0x, .src0x, .dst0x, ._ }, .{ ._, .vp_b, .ackssw, .dst0x, .dst0x, .dst0x, ._ }, @@ -39082,11 +42880,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_int = .{ .of = .dword, .is = .byte } }}, + .dst_constraints = .{ .{ .scalar_int = .{ .of = .dword, .is = .byte } }, .any }, .patterns = &.{ .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .vp_w, .ackusd, .dst0x, .src0x, .dst0x, ._ }, .{ ._, .vp_b, .ackusw, .dst0x, .dst0x, .dst0x, ._ }, @@ -39094,11 +42892,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .dword, .is = .byte } }}, + .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .dword, .is = .byte } }, .any }, .patterns = &.{ .{ .src = .{ .to_mut_sse, .none, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{ .{ ._, .p_w, .ackssd, .dst0x, .dst0x, ._, ._ }, .{ ._, .p_b, .ackssw, .dst0x, .dst0x, ._, ._ }, @@ -39106,11 +42904,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse4_1, null, null, null }, .src_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_int = .{ .of = .dword, .is = .byte } }}, + .dst_constraints = .{ .{ .scalar_int = .{ .of = .dword, .is = .byte } }, .any }, .patterns = &.{ .{ .src = .{ .to_mut_sse, .none, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{ .{ ._, .p_w, .ackusd, .dst0x, .dst0x, ._, ._ }, .{ ._, .p_b, .ackusw, .dst0x, .dst0x, ._, ._ }, @@ -39118,11 +42916,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx2, null, null, null }, .src_constraints = .{ .{ .scalar_int = .{ .of = .yword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .qword, .is = .byte } }}, + .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .qword, .is = .byte } }, .any }, .patterns = &.{ .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .vp_w, .ackssd, .dst0y, .src0y, .dst0y, ._ }, .{ ._, .vp_b, .ackssw, .dst0y, .dst0y, .dst0y, ._ }, @@ -39130,11 +42928,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx2, null, null, null }, .src_constraints = .{ .{ .scalar_int = .{ .of = .yword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_int = .{ .of = .qword, .is = .byte } }}, + .dst_constraints = .{ .{ .scalar_int = .{ .of = .qword, .is = .byte } }, .any }, .patterns = &.{ .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .vp_w, .ackusd, .dst0y, .src0y, .dst0y, ._ }, .{ ._, .vp_b, .ackusw, .dst0y, .dst0y, .dst0y, ._ }, @@ -39142,7 +42940,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .slow_incdec, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }}, + .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -39157,7 +42955,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -39168,7 +42966,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { } }, }, .{ .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }}, + .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -39183,7 +42981,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -39195,7 +42993,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .slow_incdec, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .qword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }}, + .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -39210,7 +43008,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -39221,7 +43019,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { } }, }, .{ .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .qword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }}, + .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -39236,7 +43034,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -39248,7 +43046,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .slow_incdec, null, null, null }, .src_constraints = .{ .any_scalar_int, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }}, + .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -39263,7 +43061,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -39276,7 +43074,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { } }, }, .{ .src_constraints = .{ .any_scalar_int, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }}, + .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -39291,7 +43089,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -39305,92 +43103,92 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, null, null, null }, .src_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .scalar_int = .{ .of = .xword, .is = .word } }}, + .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .mut_mem, .none, .none } }, .{ .src = .{ .to_mut_sse, .none, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{} }, }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .scalar_int = .{ .of = .yword, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .scalar_int = .{ .of = .yword, .is = .word } }}, + .dst_constraints = .{ .{ .scalar_int = .{ .of = .yword, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .mut_mem, .none, .none } }, .{ .src = .{ .to_mut_sse, .none, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{} }, }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .qword, .is = .word } }}, + .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .qword, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .vp_w, .ackssd, .dst0x, .src0x, .dst0x, ._ }, } }, }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_int = .{ .of = .qword, .is = .word } }}, + .dst_constraints = .{ .{ .scalar_int = .{ .of = .qword, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .vp_w, .ackusd, .dst0x, .src0x, .dst0x, ._ }, } }, }, .{ .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .qword, .is = .word } }}, + .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .qword, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mut_sse, .none, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{ .{ ._, .p_w, .ackssd, .dst0x, .dst0x, ._, ._ }, } }, }, .{ .required_features = .{ .sse4_1, null, null, null }, .src_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_int = .{ .of = .qword, .is = .word } }}, + .dst_constraints = .{ .{ .scalar_int = .{ .of = .qword, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mut_sse, .none, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{ .{ ._, .p_w, .ackusd, .dst0x, .dst0x, ._, ._ }, } }, }, .{ .required_features = .{ .avx2, null, null, null }, .src_constraints = .{ .{ .scalar_int = .{ .of = .yword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .xword, .is = .word } }}, + .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .vp_w, .ackssd, .dst0y, .src0y, .dst0y, ._ }, } }, }, .{ .required_features = .{ .avx2, null, null, null }, .src_constraints = .{ .{ .scalar_int = .{ .of = .yword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_int = .{ .of = .xword, .is = .word } }}, + .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .vp_w, .ackusd, .dst0y, .src0y, .dst0y, ._ }, } }, }, .{ .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .word, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -39405,7 +43203,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -39416,7 +43214,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { } }, }, .{ .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .qword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .word, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -39431,7 +43229,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -39442,7 +43240,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { } }, }, .{ .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .xword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .word, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -39457,7 +43255,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -39468,7 +43266,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { } }, }, .{ .src_constraints = .{ .any_scalar_int, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .word, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -39483,7 +43281,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -39497,50 +43295,50 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, null, null, null }, .src_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_int = .{ .of = .xword, .is = .dword } }}, + .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .mut_mem, .none, .none } }, .{ .src = .{ .to_mut_sse, .none, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{} }, }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .scalar_int = .{ .of = .yword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_int = .{ .of = .yword, .is = .dword } }}, + .dst_constraints = .{ .{ .scalar_int = .{ .of = .yword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .mut_mem, .none, .none } }, .{ .src = .{ .to_mut_sse, .none, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{} }, }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_int = .{ .of = .qword, .is = .dword } }}, + .dst_constraints = .{ .{ .scalar_int = .{ .of = .qword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .vp_d, .shuf, .dst0x, .src0x, .ui(0b10_00_10_00), ._ }, } }, }, .{ .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_int = .{ .of = .qword, .is = .dword } }}, + .dst_constraints = .{ .{ .scalar_int = .{ .of = .qword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .p_d, .shuf, .dst0x, .src0x, .ui(0b10_00_10_00), ._ }, } }, }, .{ .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .qword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -39555,7 +43353,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -39566,7 +43364,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { } }, }, .{ .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .xword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -39581,7 +43379,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -39592,7 +43390,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { } }, }, .{ .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .yword, .is = .yword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -39607,7 +43405,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -39618,7 +43416,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { } }, }, .{ .src_constraints = .{ .any_scalar_int, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -39633,7 +43431,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -39647,27 +43445,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, null, null, null }, .src_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_int = .{ .of = .xword, .is = .qword } }}, + .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .mut_mem, .none, .none } }, .{ .src = .{ .to_mut_sse, .none, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{} }, }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .scalar_int = .{ .of = .yword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_int = .{ .of = .yword, .is = .qword } }}, + .dst_constraints = .{ .{ .scalar_int = .{ .of = .yword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .mut_mem, .none, .none } }, .{ .src = .{ .to_mut_sse, .none, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{} }, }, .{ .required_features = .{ .@"64bit", null, null, null }, .src_constraints = .{ .any_scalar_int, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -39682,7 +43480,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -39696,37 +43494,37 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, null, null, null }, .src_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .xword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_int = .{ .of = .xword, .is = .xword } }}, + .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .xword } }, .any }, .patterns = &.{ .{ .src = .{ .mut_mem, .none, .none } }, .{ .src = .{ .to_mut_sse, .none, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{} }, }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .scalar_int = .{ .of = .yword, .is = .xword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_int = .{ .of = .yword, .is = .xword } }}, + .dst_constraints = .{ .{ .scalar_int = .{ .of = .yword, .is = .xword } }, .any }, .patterns = &.{ .{ .src = .{ .mut_mem, .none, .none } }, .{ .src = .{ .to_mut_sse, .none, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{} }, }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .scalar_int = .{ .of = .yword, .is = .yword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_int = .{ .of = .yword, .is = .yword } }}, + .dst_constraints = .{ .{ .scalar_int = .{ .of = .yword, .is = .yword } }, .any }, .patterns = &.{ .{ .src = .{ .mut_mem, .none, .none } }, .{ .src = .{ .to_mut_sse, .none, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{} }, }, .{ .required_features = .{ .@"64bit", .slow_incdec, null, null }, .src_constraints = .{ .any_scalar_int, .any, .any }, - .dst_constraints = .{.any_scalar_int}, + .dst_constraints = .{ .any_scalar_int, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -39741,7 +43539,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, @@ -39756,7 +43554,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", null, null, null }, .src_constraints = .{ .any_scalar_int, .any, .any }, - .dst_constraints = .{.any_scalar_int}, + .dst_constraints = .{ .any_scalar_int, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -39771,7 +43569,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, @@ -39785,54 +43583,54 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { } }, } } else comptime &.{ .{ .src_constraints = .{ .{ .signed_int = .byte }, .any, .any }, - .dst_constraints = .{.{ .signed_int = .dword }}, + .dst_constraints = .{ .{ .signed_int = .dword }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_gpr, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .movsx, .dst0d, .src0b, ._, ._ }, } }, }, .{ .src_constraints = .{ .{ .int = .byte }, .any, .any }, - .dst_constraints = .{.{ .int = .dword }}, + .dst_constraints = .{ .{ .int = .dword }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_gpr, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .movzx, .dst0d, .src0b, ._, ._ }, } }, }, .{ .required_features = .{ .@"64bit", null, null, null }, .src_constraints = .{ .{ .signed_int = .byte }, .any, .any }, - .dst_constraints = .{.{ .signed_int = .qword }}, + .dst_constraints = .{ .{ .signed_int = .qword }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_gpr, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .movsx, .dst0q, .src0b, ._, ._ }, } }, }, .{ .required_features = .{ .@"64bit", null, null, null }, .src_constraints = .{ .{ .int = .byte }, .any, .any }, - .dst_constraints = .{.{ .int = .qword }}, + .dst_constraints = .{ .{ .int = .qword }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_gpr, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .movzx, .dst0d, .src0b, ._, ._ }, } }, }, .{ .required_features = .{ .@"64bit", null, null, null }, .src_constraints = .{ .{ .signed_int = .byte }, .any, .any }, - .dst_constraints = .{.{ .remainder_signed_int = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .remainder_signed_int = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_gpr, .none, .none } }, @@ -39848,7 +43646,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .movsx, .tmp0q, .src0b, ._, ._ }, @@ -39861,7 +43659,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", null, null, null }, .src_constraints = .{ .{ .int = .byte }, .any, .any }, - .dst_constraints = .{.{ .remainder_int = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .remainder_int = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_gpr, .none, .none } }, @@ -39877,7 +43675,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .movzx, .tmp0d, .src0b, ._, ._ }, @@ -39889,7 +43687,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { } }, }, .{ .src_constraints = .{ .{ .signed_int = .byte }, .any, .any }, - .dst_constraints = .{.{ .remainder_signed_int = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_gpr, .none, .none } }, @@ -39905,7 +43703,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .movsx, .tmp0d, .src0b, ._, ._ }, @@ -39917,7 +43715,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { } }, }, .{ .src_constraints = .{ .{ .int = .byte }, .any, .any }, - .dst_constraints = .{.{ .remainder_int = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .remainder_int = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_gpr, .none, .none } }, @@ -39933,7 +43731,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .movzx, .tmp0d, .src0b, ._, ._ }, @@ -39945,54 +43743,54 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { } }, }, .{ .src_constraints = .{ .{ .signed_int = .word }, .any, .any }, - .dst_constraints = .{.{ .signed_int = .dword }}, + .dst_constraints = .{ .{ .signed_int = .dword }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_gpr, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .movsx, .dst0d, .src0w, ._, ._ }, } }, }, .{ .src_constraints = .{ .{ .int = .word }, .any, .any }, - .dst_constraints = .{.{ .int = .dword }}, + .dst_constraints = .{ .{ .int = .dword }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_gpr, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .movzx, .dst0d, .src0w, ._, ._ }, } }, }, .{ .required_features = .{ .@"64bit", null, null, null }, .src_constraints = .{ .{ .signed_int = .word }, .any, .any }, - .dst_constraints = .{.{ .signed_int = .qword }}, + .dst_constraints = .{ .{ .signed_int = .qword }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_gpr, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .movsx, .dst0q, .src0w, ._, ._ }, } }, }, .{ .required_features = .{ .@"64bit", null, null, null }, .src_constraints = .{ .{ .int = .word }, .any, .any }, - .dst_constraints = .{.{ .int = .qword }}, + .dst_constraints = .{ .{ .int = .qword }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_gpr, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .movzx, .dst0d, .src0w, ._, ._ }, } }, }, .{ .required_features = .{ .@"64bit", null, null, null }, .src_constraints = .{ .{ .signed_int = .word }, .any, .any }, - .dst_constraints = .{.{ .remainder_signed_int = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .remainder_signed_int = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_gpr, .none, .none } }, @@ -40008,7 +43806,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .movsx, .tmp0q, .src0w, ._, ._ }, @@ -40021,7 +43819,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", null, null, null }, .src_constraints = .{ .{ .int = .word }, .any, .any }, - .dst_constraints = .{.{ .remainder_int = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .remainder_int = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_gpr, .none, .none } }, @@ -40037,7 +43835,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .movzx, .tmp0d, .src0w, ._, ._ }, @@ -40049,7 +43847,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { } }, }, .{ .src_constraints = .{ .{ .signed_int = .word }, .any, .any }, - .dst_constraints = .{.{ .remainder_signed_int = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_gpr, .none, .none } }, @@ -40065,7 +43863,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .movsx, .tmp0d, .src0w, ._, ._ }, @@ -40077,7 +43875,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { } }, }, .{ .src_constraints = .{ .{ .int = .word }, .any, .any }, - .dst_constraints = .{.{ .remainder_int = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .remainder_int = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_gpr, .none, .none } }, @@ -40093,7 +43891,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .movzx, .tmp0d, .src0w, ._, ._ }, @@ -40106,31 +43904,31 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", null, null, null }, .src_constraints = .{ .{ .signed_int = .dword }, .any, .any }, - .dst_constraints = .{.{ .signed_int = .qword }}, + .dst_constraints = .{ .{ .signed_int = .qword }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_gpr, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } }, .unused }, .each = .{ .once = &.{ .{ ._, ._d, .movsx, .dst0q, .src0d, ._, ._ }, } }, }, .{ .required_features = .{ .@"64bit", null, null, null }, .src_constraints = .{ .{ .int = .dword }, .any, .any }, - .dst_constraints = .{.{ .int = .qword }}, + .dst_constraints = .{ .{ .int = .qword }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_gpr, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .mov, .dst0d, .src0d, ._, ._ }, } }, }, .{ .required_features = .{ .@"64bit", null, null, null }, .src_constraints = .{ .{ .signed_int = .dword }, .any, .any }, - .dst_constraints = .{.{ .remainder_signed_int = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .remainder_signed_int = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_gpr, .none, .none } }, @@ -40146,7 +43944,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._d, .movsx, .tmp0q, .src0d, ._, ._ }, @@ -40159,7 +43957,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", null, null, null }, .src_constraints = .{ .{ .int = .dword }, .any, .any }, - .dst_constraints = .{.{ .remainder_int = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .remainder_int = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_gpr, .none, .none } }, @@ -40175,7 +43973,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ }, @@ -40187,7 +43985,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { } }, }, .{ .src_constraints = .{ .{ .signed_int = .dword }, .any, .any }, - .dst_constraints = .{.{ .remainder_signed_int = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_gpr, .none, .none } }, @@ -40203,7 +44001,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ }, @@ -40215,7 +44013,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { } }, }, .{ .src_constraints = .{ .{ .int = .dword }, .any, .any }, - .dst_constraints = .{.{ .remainder_int = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .remainder_int = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_gpr, .none, .none } }, @@ -40231,7 +44029,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ }, @@ -40244,7 +44042,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", null, null, null }, .src_constraints = .{ .{ .signed_int = .qword }, .any, .any }, - .dst_constraints = .{.{ .remainder_signed_int = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .remainder_signed_int = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_gpr, .none, .none } }, @@ -40260,7 +44058,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0q, .src0q, ._, ._ }, @@ -40273,7 +44071,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", null, null, null }, .src_constraints = .{ .{ .int = .qword }, .any, .any }, - .dst_constraints = .{.{ .remainder_int = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .remainder_int = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_gpr, .none, .none } }, @@ -40289,7 +44087,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0q, .src0q, ._, ._ }, @@ -40302,7 +44100,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", null, null, null }, .src_constraints = .{ .{ .remainder_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .remainder_signed_int = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .remainder_signed_int = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -40317,7 +44115,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, @@ -40333,7 +44131,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", null, null, null }, .src_constraints = .{ .{ .remainder_int = .{ .of = .qword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .remainder_int = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .remainder_int = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -40348,7 +44146,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, @@ -40362,55 +44160,55 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .qword, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .xword, .is = .word } }}, + .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .vp_w, .movsxb, .dst0x, .src0q, ._, ._ }, } }, }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .scalar_int = .{ .of = .qword, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .scalar_int = .{ .of = .xword, .is = .word } }}, + .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .vp_w, .movzxb, .dst0x, .src0q, ._, ._ }, } }, }, .{ .required_features = .{ .sse4_1, null, null, null }, .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .qword, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .xword, .is = .word } }}, + .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .p_w, .movsxb, .dst0x, .src0q, ._, ._ }, } }, }, .{ .required_features = .{ .sse4_1, null, null, null }, .src_constraints = .{ .{ .scalar_int = .{ .of = .qword, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .scalar_int = .{ .of = .xword, .is = .word } }}, + .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .p_w, .movzxb, .dst0x, .src0q, ._, ._ }, } }, }, .{ .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .qword, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .xword, .is = .word } }}, + .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mut_sse, .none, .none } }, }, @@ -40425,7 +44223,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{ .{ ._, .p_, .xor, .tmp0x, .tmp0x, ._, ._ }, .{ ._, .p_b, .cmpgt, .tmp0x, .src0x, ._, ._ }, @@ -40434,7 +44232,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ .{ .scalar_int = .{ .of = .qword, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .scalar_int = .{ .of = .xword, .is = .word } }}, + .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mut_sse, .none, .none } }, }, @@ -40449,7 +44247,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{ .{ ._, .p_, .xor, .tmp0x, .tmp0x, ._, ._ }, .{ ._, .p_, .unpcklbw, .dst0x, .tmp0x, ._, ._ }, @@ -40457,31 +44255,31 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx2, null, null, null }, .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .yword, .is = .word } }}, + .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .yword, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .vp_w, .movsxb, .dst0y, .src0x, ._, ._ }, } }, }, .{ .required_features = .{ .avx2, null, null, null }, .src_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .scalar_int = .{ .of = .yword, .is = .word } }}, + .dst_constraints = .{ .{ .scalar_int = .{ .of = .yword, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .vp_w, .movzxb, .dst0y, .src0x, ._, ._ }, } }, }, .{ .required_features = .{ .avx2, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -40496,7 +44294,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -40508,7 +44306,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx2, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .yword, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .yword, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -40523,7 +44321,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -40535,7 +44333,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -40550,7 +44348,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -40562,7 +44360,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .qword, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .xword, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -40577,7 +44375,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -40589,7 +44387,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse4_1, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -40604,7 +44402,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -40616,7 +44414,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse4_1, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .qword, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .xword, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -40631,7 +44429,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -40643,7 +44441,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .slow_incdec, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -40658,7 +44456,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -40669,7 +44467,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { } }, }, .{ .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -40684,7 +44482,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -40696,7 +44494,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .slow_incdec, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .word, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -40711,7 +44509,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -40722,7 +44520,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { } }, }, .{ .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .word, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -40737,7 +44535,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -40749,55 +44547,55 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .dword, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .xword, .is = .dword } }}, + .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .vp_d, .movsxb, .dst0x, .src0d, ._, ._ }, } }, }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .scalar_int = .{ .of = .dword, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .scalar_int = .{ .of = .xword, .is = .dword } }}, + .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .vp_d, .movzxb, .dst0x, .src0d, ._, ._ }, } }, }, .{ .required_features = .{ .sse4_1, null, null, null }, .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .dword, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .xword, .is = .dword } }}, + .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .p_d, .movsxb, .dst0x, .src0d, ._, ._ }, } }, }, .{ .required_features = .{ .sse4_1, null, null, null }, .src_constraints = .{ .{ .scalar_int = .{ .of = .dword, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .scalar_int = .{ .of = .xword, .is = .dword } }}, + .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .p_d, .movzxb, .dst0x, .src0d, ._, ._ }, } }, }, .{ .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .dword, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .xword, .is = .dword } }}, + .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mut_sse, .none, .none } }, }, @@ -40812,7 +44610,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{ .{ ._, .p_, .xor, .tmp0x, .tmp0x, ._, ._ }, .{ ._, .p_b, .cmpgt, .tmp0x, .src0x, ._, ._ }, @@ -40823,7 +44621,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ .{ .scalar_int = .{ .of = .dword, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .scalar_int = .{ .of = .xword, .is = .dword } }}, + .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mut_sse, .none, .none } }, }, @@ -40838,7 +44636,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{ .{ ._, .p_, .xor, .tmp0x, .tmp0x, ._, ._ }, .{ ._, .p_, .unpcklbw, .dst0x, .tmp0x, ._, ._ }, @@ -40847,31 +44645,31 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx2, null, null, null }, .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .qword, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .yword, .is = .dword } }}, + .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .yword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .vp_d, .movsxb, .dst0y, .src0q, ._, ._ }, } }, }, .{ .required_features = .{ .avx2, null, null, null }, .src_constraints = .{ .{ .scalar_int = .{ .of = .qword, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .scalar_int = .{ .of = .yword, .is = .dword } }}, + .dst_constraints = .{ .{ .scalar_int = .{ .of = .yword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .vp_d, .movzxb, .dst0y, .src0q, ._, ._ }, } }, }, .{ .required_features = .{ .avx2, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -40886,7 +44684,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -40898,7 +44696,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx2, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .qword, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .yword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .yword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -40913,7 +44711,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -40925,7 +44723,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -40940,7 +44738,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -40952,7 +44750,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .dword, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .xword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -40967,7 +44765,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -40979,7 +44777,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse4_1, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -40994,7 +44792,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -41006,7 +44804,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse4_1, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .dword, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .xword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -41021,7 +44819,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -41033,7 +44831,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .slow_incdec, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -41048,7 +44846,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -41059,7 +44857,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { } }, }, .{ .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -41074,7 +44872,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -41086,7 +44884,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .slow_incdec, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -41101,7 +44899,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -41112,7 +44910,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { } }, }, .{ .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -41127,7 +44925,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -41139,55 +44937,55 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .word, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .xword, .is = .qword } }}, + .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .vp_q, .movsxb, .dst0x, .src0w, ._, ._ }, } }, }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .scalar_int = .{ .of = .word, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .scalar_int = .{ .of = .xword, .is = .qword } }}, + .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .vp_q, .movzxb, .dst0x, .src0w, ._, ._ }, } }, }, .{ .required_features = .{ .sse4_1, null, null, null }, .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .word, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .xword, .is = .qword } }}, + .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .p_q, .movsxb, .dst0x, .src0w, ._, ._ }, } }, }, .{ .required_features = .{ .sse4_1, null, null, null }, .src_constraints = .{ .{ .scalar_int = .{ .of = .word, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .scalar_int = .{ .of = .xword, .is = .qword } }}, + .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .p_q, .movzxb, .dst0x, .src0w, ._, ._ }, } }, }, .{ .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .word, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .xword, .is = .qword } }}, + .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mut_sse, .none, .none } }, }, @@ -41202,7 +45000,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{ .{ ._, .p_, .xor, .tmp0x, .tmp0x, ._, ._ }, .{ ._, .p_b, .cmpgt, .tmp0x, .src0x, ._, ._ }, @@ -41215,7 +45013,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ .{ .scalar_int = .{ .of = .word, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .scalar_int = .{ .of = .xword, .is = .qword } }}, + .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mut_sse, .none, .none } }, }, @@ -41230,7 +45028,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{ .{ ._, .p_, .xor, .tmp0x, .tmp0x, ._, ._ }, .{ ._, .p_, .unpcklbw, .dst0x, .tmp0x, ._, ._ }, @@ -41240,31 +45038,31 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx2, null, null, null }, .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .dword, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .yword, .is = .qword } }}, + .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .yword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .vp_q, .movsxb, .dst0y, .src0d, ._, ._ }, } }, }, .{ .required_features = .{ .avx2, null, null, null }, .src_constraints = .{ .{ .scalar_int = .{ .of = .dword, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .scalar_int = .{ .of = .yword, .is = .qword } }}, + .dst_constraints = .{ .{ .scalar_int = .{ .of = .yword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .vp_q, .movzxb, .dst0y, .src0d, ._, ._ }, } }, }, .{ .required_features = .{ .avx2, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -41279,7 +45077,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -41291,7 +45089,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx2, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .dword, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .yword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .yword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -41306,7 +45104,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -41318,7 +45116,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -41333,7 +45131,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -41345,7 +45143,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .xword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -41360,7 +45158,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -41372,7 +45170,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse4_1, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -41387,7 +45185,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -41399,7 +45197,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse4_1, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .xword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -41414,7 +45212,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -41426,7 +45224,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .slow_incdec, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -41441,7 +45239,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -41453,7 +45251,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", null, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -41468,7 +45266,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -41480,7 +45278,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .slow_incdec, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -41495,7 +45293,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -41506,7 +45304,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { } }, }, .{ .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -41521,7 +45319,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -41533,12 +45331,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .xword, .is = .xword } }}, + .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .vp_q, .movsxb, .dst0x, .src0w, ._, ._ }, .{ ._, .vp_q, .movsxd, .dst0x, .dst0q, ._, ._ }, @@ -41546,12 +45344,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .scalar_int = .{ .of = .byte, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .scalar_int = .{ .of = .xword, .is = .xword } }}, + .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .xword } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .vp_q, .movzxb, .dst0x, .src0w, ._, ._ }, .{ ._, .vp_q, .movzxd, .dst0x, .dst0q, ._, ._ }, @@ -41559,12 +45357,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse4_1, null, null, null }, .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .xword, .is = .xword } }}, + .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .p_q, .movsxb, .dst0x, .src0w, ._, ._ }, .{ ._, .p_q, .movsxd, .dst0x, .dst0q, ._, ._ }, @@ -41572,12 +45370,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse4_1, null, null, null }, .src_constraints = .{ .{ .scalar_int = .{ .of = .byte, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .scalar_int = .{ .of = .xword, .is = .xword } }}, + .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .xword } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .p_q, .movzxb, .dst0x, .src0w, ._, ._ }, .{ ._, .p_q, .movzxd, .dst0x, .dst0q, ._, ._ }, @@ -41585,7 +45383,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .xword, .is = .xword } }}, + .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mut_sse, .none, .none } }, }, @@ -41600,7 +45398,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{ .{ ._, .p_, .xor, .tmp0x, .tmp0x, ._, ._ }, .{ ._, .p_b, .cmpgt, .tmp0x, .src0x, ._, ._ }, @@ -41615,7 +45413,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ .{ .scalar_int = .{ .of = .byte, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .scalar_int = .{ .of = .xword, .is = .xword } }}, + .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .xword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mut_sse, .none, .none } }, }, @@ -41630,7 +45428,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{ .{ ._, .p_, .xor, .tmp0x, .tmp0x, ._, ._ }, .{ ._, .p_, .unpcklbw, .dst0x, .tmp0x, ._, ._ }, @@ -41641,7 +45439,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .slow_incdec, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, - .dst_constraints = .{.any_scalar_signed_int}, + .dst_constraints = .{ .any_scalar_signed_int, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -41656,7 +45454,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -41672,7 +45470,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", null, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, - .dst_constraints = .{.any_scalar_signed_int}, + .dst_constraints = .{ .any_scalar_signed_int, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -41687,7 +45485,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -41703,7 +45501,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .slow_incdec, null, null }, .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any, .any }, - .dst_constraints = .{.any_scalar_int}, + .dst_constraints = .{ .any_scalar_int, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -41718,7 +45516,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -41734,7 +45532,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", null, null, null }, .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any, .any }, - .dst_constraints = .{.any_scalar_int}, + .dst_constraints = .{ .any_scalar_int, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -41749,7 +45547,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -41765,55 +45563,55 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .qword, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .xword, .is = .dword } }}, + .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .vp_d, .movsxw, .dst0x, .src0q, ._, ._ }, } }, }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .scalar_int = .{ .of = .qword, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .scalar_int = .{ .of = .xword, .is = .dword } }}, + .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .vp_d, .movzxw, .dst0x, .src0q, ._, ._ }, } }, }, .{ .required_features = .{ .sse4_1, null, null, null }, .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .qword, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .xword, .is = .dword } }}, + .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .p_d, .movsxw, .dst0x, .src0q, ._, ._ }, } }, }, .{ .required_features = .{ .sse4_1, null, null, null }, .src_constraints = .{ .{ .scalar_int = .{ .of = .qword, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .scalar_int = .{ .of = .xword, .is = .dword } }}, + .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .p_d, .movzxw, .dst0x, .src0q, ._, ._ }, } }, }, .{ .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .qword, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .xword, .is = .dword } }}, + .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mut_sse, .none, .none } }, }, @@ -41828,7 +45626,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{ .{ ._, .p_, .xor, .tmp0x, .tmp0x, ._, ._ }, .{ ._, .p_w, .cmpgt, .tmp0x, .src0x, ._, ._ }, @@ -41837,7 +45635,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ .{ .scalar_int = .{ .of = .qword, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .scalar_int = .{ .of = .xword, .is = .dword } }}, + .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mut_sse, .none, .none } }, }, @@ -41852,7 +45650,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{ .{ ._, .p_, .xor, .tmp0x, .tmp0x, ._, ._ }, .{ ._, .p_, .unpcklwd, .dst0x, .tmp0x, ._, ._ }, @@ -41860,31 +45658,31 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx2, null, null, null }, .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .yword, .is = .dword } }}, + .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .yword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .vp_d, .movsxw, .dst0y, .src0x, ._, ._ }, } }, }, .{ .required_features = .{ .avx2, null, null, null }, .src_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .scalar_int = .{ .of = .yword, .is = .dword } }}, + .dst_constraints = .{ .{ .scalar_int = .{ .of = .yword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .vp_d, .movzxw, .dst0y, .src0x, ._, ._ }, } }, }, .{ .required_features = .{ .avx2, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -41899,7 +45697,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -41911,7 +45709,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx2, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .yword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .yword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -41926,7 +45724,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -41938,7 +45736,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -41953,7 +45751,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -41965,7 +45763,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .qword, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .xword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -41980,7 +45778,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -41992,7 +45790,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse4_1, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -42007,7 +45805,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -42019,7 +45817,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse4_1, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .qword, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .xword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -42034,7 +45832,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -42045,7 +45843,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { } }, }, .{ .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -42060,7 +45858,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -42071,7 +45869,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { } }, }, .{ .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -42086,7 +45884,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -42098,55 +45896,55 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .dword, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .xword, .is = .qword } }}, + .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .vp_q, .movsxw, .dst0x, .src0d, ._, ._ }, } }, }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .scalar_int = .{ .of = .dword, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .scalar_int = .{ .of = .xword, .is = .qword } }}, + .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .vp_q, .movzxw, .dst0x, .src0d, ._, ._ }, } }, }, .{ .required_features = .{ .sse4_1, null, null, null }, .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .dword, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .xword, .is = .qword } }}, + .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .p_q, .movsxw, .dst0x, .src0d, ._, ._ }, } }, }, .{ .required_features = .{ .sse4_1, null, null, null }, .src_constraints = .{ .{ .scalar_int = .{ .of = .dword, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .scalar_int = .{ .of = .xword, .is = .qword } }}, + .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .p_q, .movzxw, .dst0x, .src0d, ._, ._ }, } }, }, .{ .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .dword, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .xword, .is = .qword } }}, + .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mut_sse, .none, .none } }, }, @@ -42161,7 +45959,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{ .{ ._, .p_, .xor, .tmp0x, .tmp0x, ._, ._ }, .{ ._, .p_w, .cmpgt, .tmp0x, .src0x, ._, ._ }, @@ -42172,7 +45970,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ .{ .scalar_int = .{ .of = .dword, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .scalar_int = .{ .of = .xword, .is = .qword } }}, + .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mut_sse, .none, .none } }, }, @@ -42187,7 +45985,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{ .{ ._, .p_, .xor, .tmp0x, .tmp0x, ._, ._ }, .{ ._, .p_, .unpcklwd, .dst0x, .tmp0x, ._, ._ }, @@ -42196,31 +45994,31 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx2, null, null, null }, .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .qword, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .yword, .is = .qword } }}, + .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .yword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .vp_q, .movsxw, .dst0y, .src0q, ._, ._ }, } }, }, .{ .required_features = .{ .avx2, null, null, null }, .src_constraints = .{ .{ .scalar_int = .{ .of = .qword, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .scalar_int = .{ .of = .yword, .is = .qword } }}, + .dst_constraints = .{ .{ .scalar_int = .{ .of = .yword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .vp_q, .movzxw, .dst0y, .src0q, ._, ._ }, } }, }, .{ .required_features = .{ .avx2, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -42235,7 +46033,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -42247,7 +46045,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx2, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .qword, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .yword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .yword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -42262,7 +46060,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -42274,7 +46072,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -42289,7 +46087,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -42301,7 +46099,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .dword, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .xword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -42316,7 +46114,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -42328,7 +46126,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse4_1, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -42343,7 +46141,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -42355,7 +46153,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse4_1, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .dword, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .xword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -42370,7 +46168,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -42382,7 +46180,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", null, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -42397,7 +46195,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -42409,7 +46207,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", null, null, null }, .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -42424,7 +46222,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -42436,12 +46234,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .word, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .xword, .is = .xword } }}, + .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .vp_q, .movsxw, .dst0x, .src0d, ._, ._ }, .{ ._, .vp_q, .movsxd, .dst0x, .dst0q, ._, ._ }, @@ -42449,12 +46247,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .scalar_int = .{ .of = .word, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .scalar_int = .{ .of = .xword, .is = .xword } }}, + .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .xword } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .vp_q, .movzxw, .dst0x, .src0d, ._, ._ }, .{ ._, .vp_q, .movzxd, .dst0x, .dst0q, ._, ._ }, @@ -42462,12 +46260,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse4_1, null, null, null }, .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .word, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .xword, .is = .xword } }}, + .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .p_q, .movsxw, .dst0x, .src0d, ._, ._ }, .{ ._, .p_q, .movsxd, .dst0x, .dst0q, ._, ._ }, @@ -42475,12 +46273,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse4_1, null, null, null }, .src_constraints = .{ .{ .scalar_int = .{ .of = .word, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .scalar_int = .{ .of = .xword, .is = .xword } }}, + .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .xword } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .p_q, .movzxw, .dst0x, .src0d, ._, ._ }, .{ ._, .p_q, .movzxd, .dst0x, .dst0q, ._, ._ }, @@ -42488,7 +46286,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .word, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .xword, .is = .xword } }}, + .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mut_sse, .none, .none } }, }, @@ -42503,7 +46301,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{ .{ ._, .p_, .xor, .tmp0x, .tmp0x, ._, ._ }, .{ ._, .p_w, .cmpgt, .tmp0x, .src0x, ._, ._ }, @@ -42516,7 +46314,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ .{ .scalar_int = .{ .of = .word, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .scalar_int = .{ .of = .xword, .is = .xword } }}, + .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .xword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mut_sse, .none, .none } }, }, @@ -42531,7 +46329,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{ .{ ._, .p_, .xor, .tmp0x, .tmp0x, ._, ._ }, .{ ._, .p_, .unpcklwd, .dst0x, .tmp0x, ._, ._ }, @@ -42541,7 +46339,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", null, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any, .any }, - .dst_constraints = .{.any_scalar_signed_int}, + .dst_constraints = .{ .any_scalar_signed_int, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -42556,7 +46354,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -42572,7 +46370,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", null, null, null }, .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .word } }, .any, .any }, - .dst_constraints = .{.any_scalar_int}, + .dst_constraints = .{ .any_scalar_int, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -42587,7 +46385,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -42603,55 +46401,55 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .qword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .xword, .is = .qword } }}, + .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .vp_q, .movsxd, .dst0x, .src0q, ._, ._ }, } }, }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .scalar_int = .{ .of = .qword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_int = .{ .of = .xword, .is = .qword } }}, + .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .vp_q, .movzxd, .dst0x, .src0q, ._, ._ }, } }, }, .{ .required_features = .{ .sse4_1, null, null, null }, .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .qword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .xword, .is = .qword } }}, + .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .p_q, .movsxd, .dst0x, .src0q, ._, ._ }, } }, }, .{ .required_features = .{ .sse4_1, null, null, null }, .src_constraints = .{ .{ .scalar_int = .{ .of = .qword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_int = .{ .of = .xword, .is = .qword } }}, + .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .p_q, .movzxd, .dst0x, .src0q, ._, ._ }, } }, }, .{ .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .qword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .xword, .is = .qword } }}, + .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mut_sse, .none, .none } }, }, @@ -42666,7 +46464,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{ .{ ._, .p_, .xor, .tmp0x, .tmp0x, ._, ._ }, .{ ._, .p_d, .cmpgt, .tmp0x, .src0x, ._, ._ }, @@ -42675,7 +46473,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ .{ .scalar_int = .{ .of = .qword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_int = .{ .of = .xword, .is = .qword } }}, + .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mut_sse, .none, .none } }, }, @@ -42690,7 +46488,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{ .{ ._, .p_, .xor, .tmp0x, .tmp0x, ._, ._ }, .{ ._, .p_, .unpckldq, .dst0x, .tmp0x, ._, ._ }, @@ -42698,31 +46496,31 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx2, null, null, null }, .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .yword, .is = .qword } }}, + .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .yword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .vp_q, .movsxd, .dst0y, .src0x, ._, ._ }, } }, }, .{ .required_features = .{ .avx2, null, null, null }, .src_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_int = .{ .of = .yword, .is = .qword } }}, + .dst_constraints = .{ .{ .scalar_int = .{ .of = .yword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .vp_q, .movzxd, .dst0y, .src0x, ._, ._ }, } }, }, .{ .required_features = .{ .avx2, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -42737,7 +46535,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -42749,7 +46547,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx2, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .yword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .yword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -42764,7 +46562,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -42776,7 +46574,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -42791,7 +46589,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -42803,7 +46601,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .dword, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .xword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -42818,7 +46616,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -42830,7 +46628,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse4_1, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -42845,7 +46643,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -42857,7 +46655,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse4_1, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .qword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .xword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -42872,7 +46670,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -42884,7 +46682,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", null, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -42899,7 +46697,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -42911,7 +46709,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", null, null, null }, .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -42926,7 +46724,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -42938,12 +46736,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .xword, .is = .xword } }}, + .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .vp_q, .movsxd, .dst0x, .src0q, ._, ._ }, .{ ._, .vp_q, .movsxd, .dst0x, .dst0q, ._, ._ }, @@ -42951,12 +46749,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .scalar_int = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_int = .{ .of = .xword, .is = .xword } }}, + .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .xword } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .vp_q, .movzxd, .dst0x, .src0q, ._, ._ }, .{ ._, .vp_q, .movzxd, .dst0x, .dst0q, ._, ._ }, @@ -42964,12 +46762,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse4_1, null, null, null }, .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .xword, .is = .xword } }}, + .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .p_q, .movsxd, .dst0x, .src0q, ._, ._ }, .{ ._, .p_q, .movsxd, .dst0x, .dst0q, ._, ._ }, @@ -42977,12 +46775,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse4_1, null, null, null }, .src_constraints = .{ .{ .scalar_int = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_int = .{ .of = .xword, .is = .xword } }}, + .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .xword } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .p_q, .movzxd, .dst0x, .src0q, ._, ._ }, .{ ._, .p_q, .movzxd, .dst0x, .dst0q, ._, ._ }, @@ -42990,7 +46788,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .xword, .is = .xword } }}, + .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mut_sse, .none, .none } }, }, @@ -43005,7 +46803,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{ .{ ._, .p_, .xor, .tmp0x, .tmp0x, ._, ._ }, .{ ._, .p_d, .cmpgt, .tmp0x, .src0x, ._, ._ }, @@ -43016,7 +46814,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ .{ .scalar_int = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_int = .{ .of = .xword, .is = .xword } }}, + .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .xword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mut_sse, .none, .none } }, }, @@ -43031,7 +46829,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{ .{ ._, .p_, .xor, .tmp0x, .tmp0x, ._, ._ }, .{ ._, .p_, .unpckldq, .dst0x, .tmp0x, ._, ._ }, @@ -43040,7 +46838,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", null, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.any_scalar_signed_int}, + .dst_constraints = .{ .any_scalar_signed_int, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -43055,7 +46853,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -43071,7 +46869,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", null, null, null }, .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.any_scalar_int}, + .dst_constraints = .{ .any_scalar_int, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -43086,7 +46884,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -43102,7 +46900,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .slow_incdec, null, null }, .src_constraints = .{ .any_scalar_signed_int, .any, .any }, - .dst_constraints = .{.any_scalar_signed_int}, + .dst_constraints = .{ .any_scalar_signed_int, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -43117,7 +46915,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, @@ -43136,7 +46934,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", null, null, null }, .src_constraints = .{ .any_scalar_signed_int, .any, .any }, - .dst_constraints = .{.any_scalar_signed_int}, + .dst_constraints = .{ .any_scalar_signed_int, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -43151,7 +46949,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, @@ -43170,7 +46968,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .slow_incdec, null, null }, .src_constraints = .{ .any_scalar_int, .any, .any }, - .dst_constraints = .{.any_scalar_int}, + .dst_constraints = .{ .any_scalar_int, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -43185,7 +46983,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, @@ -43202,7 +47000,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", null, null, null }, .src_constraints = .{ .any_scalar_int, .any, .any }, - .dst_constraints = .{.any_scalar_int}, + .dst_constraints = .{ .any_scalar_int, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -43217,7 +47015,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, @@ -43242,17 +47040,18 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }; try res[0].finish(inst, &.{ty_op.operand}, &ops, cg); }, + .intcast_safe => unreachable, .trunc => |air_tag| if (use_old) try cg.airTrunc(inst) else { const ty_op = air_datas[@intFromEnum(inst)].ty_op; var ops = try cg.tempsFromOperands(inst, .{ty_op.operand}); var res: [1]Temp = undefined; cg.select(&res, &.{ty_op.ty.toType()}, &ops, comptime &.{ .{ .src_constraints = .{ .{ .signed_int = .gpr }, .any, .any }, - .dst_constraints = .{.{ .exact_signed_int = 1 }}, + .dst_constraints = .{ .{ .exact_signed_int = 1 }, .any }, .patterns = &.{ .{ .src = .{ .to_mut_gpr, .none, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .@"and", .dst0d, .si(1), ._, ._ }, @@ -43260,11 +47059,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { } }, }, .{ .src_constraints = .{ .any_signed_int, .any, .any }, - .dst_constraints = .{.{ .exact_signed_int = 1 }}, + .dst_constraints = .{ .{ .exact_signed_int = 1 }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .movzx, .dst0d, .mem(.src0b), ._, ._ }, @@ -43273,39 +47072,39 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { } }, }, .{ .src_constraints = .{ .{ .int = .gpr }, .any, .any }, - .dst_constraints = .{.{ .exact_int = 8 }}, + .dst_constraints = .{ .{ .exact_int = 8 }, .any }, .patterns = &.{ .{ .src = .{ .to_mut_gpr, .none, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{} }, }, .{ .src_constraints = .{ .any_signed_int, .any, .any }, - .dst_constraints = .{.{ .exact_signed_int = 8 }}, + .dst_constraints = .{ .{ .exact_signed_int = 8 }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .movsx, .dst0d, .mem(.src0b), ._, ._ }, } }, }, .{ .src_constraints = .{ .any_unsigned_int, .any, .any }, - .dst_constraints = .{.{ .exact_unsigned_int = 8 }}, + .dst_constraints = .{ .{ .exact_unsigned_int = 8 }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .movzx, .dst0d, .mem(.src0b), ._, ._ }, } }, }, .{ .src_constraints = .{ .{ .signed_int = .gpr }, .any, .any }, - .dst_constraints = .{.{ .signed_int = .byte }}, + .dst_constraints = .{ .{ .signed_int = .byte }, .any }, .patterns = &.{ .{ .src = .{ .to_mut_gpr, .none, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._l, .sa, .dst0b, .uia(8, .dst0, .sub_bit_size), ._, ._ }, @@ -43313,22 +47112,22 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { } }, }, .{ .src_constraints = .{ .{ .unsigned_int = .gpr }, .any, .any }, - .dst_constraints = .{.{ .unsigned_int = .byte }}, + .dst_constraints = .{ .{ .unsigned_int = .byte }, .any }, .patterns = &.{ .{ .src = .{ .to_mut_gpr, .none, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .@"and", .dst0b, .sa(.dst0, .add_umax), ._, ._ }, } }, }, .{ .src_constraints = .{ .any_int, .any, .any }, - .dst_constraints = .{.{ .unsigned_int = .byte }}, + .dst_constraints = .{ .{ .unsigned_int = .byte }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .movzx, .dst0d, .mem(.src0b), ._, ._ }, @@ -43336,40 +47135,40 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { } }, }, .{ .src_constraints = .{ .{ .int = .gpr }, .any, .any }, - .dst_constraints = .{.{ .exact_int = 16 }}, + .dst_constraints = .{ .{ .exact_int = 16 }, .any }, .patterns = &.{ .{ .src = .{ .to_mut_gpr, .none, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{} }, }, .{ .src_constraints = .{ .any_signed_int, .any, .any }, - .dst_constraints = .{.{ .exact_signed_int = 16 }}, + .dst_constraints = .{ .{ .exact_signed_int = 16 }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .movsx, .dst0d, .mem(.src0w), ._, ._ }, } }, }, .{ .src_constraints = .{ .any_unsigned_int, .any, .any }, - .dst_constraints = .{.{ .exact_unsigned_int = 16 }}, + .dst_constraints = .{ .{ .exact_unsigned_int = 16 }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .movzx, .dst0d, .mem(.src0w), ._, ._ }, } }, }, .{ .required_features = .{ .fast_imm16, null, null, null }, .src_constraints = .{ .{ .unsigned_int = .gpr }, .any, .any }, - .dst_constraints = .{.{ .unsigned_int = .word }}, + .dst_constraints = .{ .{ .unsigned_int = .word }, .any }, .patterns = &.{ .{ .src = .{ .to_mut_gpr, .none, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .@"and", .dst0w, .sa(.dst0, .add_umax), ._, ._ }, @@ -43377,11 +47176,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .fast_imm16, null, null, null }, .src_constraints = .{ .any_unsigned_int, .any, .any }, - .dst_constraints = .{.{ .unsigned_int = .word }}, + .dst_constraints = .{ .{ .unsigned_int = .word }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .movzx, .dst0d, .mem(.src0w), ._, ._ }, @@ -43389,29 +47188,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { } }, }, .{ .src_constraints = .{ .{ .int = .gpr }, .any, .any }, - .dst_constraints = .{.{ .exact_int = 32 }}, + .dst_constraints = .{ .{ .exact_int = 32 }, .any }, .patterns = &.{ .{ .src = .{ .to_mut_gpr, .none, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{} }, }, .{ .src_constraints = .{ .any_int, .any, .any }, - .dst_constraints = .{.{ .exact_int = 32 }}, + .dst_constraints = .{ .{ .exact_int = 32 }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .mov, .dst0d, .mem(.src0d), ._, ._ }, } }, }, .{ .src_constraints = .{ .{ .signed_int = .gpr }, .any, .any }, - .dst_constraints = .{.{ .signed_int = .dword }}, + .dst_constraints = .{ .{ .signed_int = .dword }, .any }, .patterns = &.{ .{ .src = .{ .to_mut_gpr, .none, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._l, .sa, .dst0d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, @@ -43419,11 +47218,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { } }, }, .{ .src_constraints = .{ .any_signed_int, .any, .any }, - .dst_constraints = .{.{ .signed_int = .dword }}, + .dst_constraints = .{ .{ .signed_int = .dword }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .dst0d, .mem(.src0d), ._, ._ }, @@ -43432,22 +47231,22 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { } }, }, .{ .src_constraints = .{ .{ .unsigned_int = .gpr }, .any, .any }, - .dst_constraints = .{.{ .unsigned_int = .dword }}, + .dst_constraints = .{ .{ .unsigned_int = .dword }, .any }, .patterns = &.{ .{ .src = .{ .to_mut_gpr, .none, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .@"and", .dst0d, .sa(.dst0, .add_umax), ._, ._ }, } }, }, .{ .src_constraints = .{ .any_unsigned_int, .any, .any }, - .dst_constraints = .{.{ .unsigned_int = .dword }}, + .dst_constraints = .{ .{ .unsigned_int = .dword }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .dst0d, .mem(.src0d), ._, ._ }, @@ -43456,22 +47255,22 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", null, null, null }, .src_constraints = .{ .any_int, .any, .any }, - .dst_constraints = .{.{ .exact_int = 64 }}, + .dst_constraints = .{ .{ .exact_int = 64 }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .mov, .dst0q, .mem(.src0q), ._, ._ }, } }, }, .{ .required_features = .{ .@"64bit", null, null, null }, .src_constraints = .{ .{ .signed_int = .gpr }, .any, .any }, - .dst_constraints = .{.{ .signed_int = .qword }}, + .dst_constraints = .{ .{ .signed_int = .qword }, .any }, .patterns = &.{ .{ .src = .{ .to_mut_gpr, .none, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._l, .sa, .dst0q, .uia(64, .dst0, .sub_bit_size), ._, ._ }, @@ -43480,11 +47279,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", null, null, null }, .src_constraints = .{ .any_signed_int, .any, .any }, - .dst_constraints = .{.{ .signed_int = .qword }}, + .dst_constraints = .{ .{ .signed_int = .qword }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .dst0q, .mem(.src0q), ._, ._ }, @@ -43494,12 +47293,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .bmi2, null, null }, .src_constraints = .{ .{ .unsigned_int = .gpr }, .any, .any }, - .dst_constraints = .{.{ .unsigned_int = .qword }}, + .dst_constraints = .{ .{ .unsigned_int = .qword }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_gpr, .none, .none } }, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .dst0d, .sa(.dst0, .add_bit_size), ._, ._ }, @@ -43508,11 +47307,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .bmi2, null, null }, .src_constraints = .{ .any_unsigned_int, .any, .any }, - .dst_constraints = .{.{ .unsigned_int = .qword }}, + .dst_constraints = .{ .{ .unsigned_int = .qword }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .dst0d, .sa(.dst0, .add_bit_size), ._, ._ }, @@ -43521,12 +47320,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", null, null, null }, .src_constraints = .{ .{ .unsigned_int = .gpr }, .any, .any }, - .dst_constraints = .{.{ .unsigned_int = .qword }}, + .dst_constraints = .{ .{ .unsigned_int = .qword }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_gpr, .none, .none } }, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .dst0q, .ua(.dst0, .add_umax), ._, ._ }, @@ -43535,11 +47334,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", null, null, null }, .src_constraints = .{ .any_unsigned_int, .any, .any }, - .dst_constraints = .{.{ .unsigned_int = .qword }}, + .dst_constraints = .{ .{ .unsigned_int = .qword }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .dst0q, .ua(.dst0, .add_umax), ._, ._ }, @@ -43548,7 +47347,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", null, null, null }, .src_constraints = .{ .any_int, .any, .any }, - .dst_constraints = .{.{ .exact_remainder_int = .{ .of = .xword, .is = .xword } }}, + .dst_constraints = .{ .{ .exact_remainder_int = .{ .of = .xword, .is = .xword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -43563,7 +47362,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, @@ -43573,7 +47372,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", null, null, null }, .src_constraints = .{ .any_signed_int, .any, .any }, - .dst_constraints = .{.{ .exact_remainder_signed_int = .{ .of = .xword, .is = .qword } }}, + .dst_constraints = .{ .{ .exact_remainder_signed_int = .{ .of = .xword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -43588,7 +47387,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, @@ -43603,7 +47402,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", null, null, null }, .src_constraints = .{ .any_signed_int, .any, .any }, - .dst_constraints = .{.{ .remainder_signed_int = .{ .of = .xword, .is = .qword } }}, + .dst_constraints = .{ .{ .remainder_signed_int = .{ .of = .xword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -43618,7 +47417,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, @@ -43635,7 +47434,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", null, null, null }, .src_constraints = .{ .any_signed_int, .any, .any }, - .dst_constraints = .{.{ .remainder_signed_int = .{ .of = .xword, .is = .xword } }}, + .dst_constraints = .{ .{ .remainder_signed_int = .{ .of = .xword, .is = .xword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -43650,7 +47449,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, @@ -43665,7 +47464,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", null, null, null }, .src_constraints = .{ .any_unsigned_int, .any, .any }, - .dst_constraints = .{.{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = .qword } }}, + .dst_constraints = .{ .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -43680,7 +47479,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, @@ -43691,7 +47490,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .bmi2, null, null }, .src_constraints = .{ .any_unsigned_int, .any, .any }, - .dst_constraints = .{.{ .remainder_unsigned_int = .{ .of = .xword, .is = .qword } }}, + .dst_constraints = .{ .{ .remainder_unsigned_int = .{ .of = .xword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -43706,7 +47505,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, @@ -43721,7 +47520,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .bmi2, null, null }, .src_constraints = .{ .any_unsigned_int, .any, .any }, - .dst_constraints = .{.{ .remainder_unsigned_int = .{ .of = .xword, .is = .xword } }}, + .dst_constraints = .{ .{ .remainder_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -43736,7 +47535,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, @@ -43750,7 +47549,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", null, null, null }, .src_constraints = .{ .any_unsigned_int, .any, .any }, - .dst_constraints = .{.{ .remainder_unsigned_int = .{ .of = .xword, .is = .qword } }}, + .dst_constraints = .{ .{ .remainder_unsigned_int = .{ .of = .xword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -43765,7 +47564,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, @@ -43780,7 +47579,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", null, null, null }, .src_constraints = .{ .any_unsigned_int, .any, .any }, - .dst_constraints = .{.{ .remainder_unsigned_int = .{ .of = .xword, .is = .xword } }}, + .dst_constraints = .{ .{ .remainder_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -43795,7 +47594,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, @@ -43809,7 +47608,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .xword, .is = .byte } }}, + .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .byte } }, .any }, .patterns = &.{ .{ .src = .{ .to_sse, .none, .none } }, }, @@ -43824,7 +47623,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, .{ ._, .vp_, .@"and", .dst0x, .src0x, .lea(.tmp0x), ._ }, @@ -43835,7 +47634,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .scalar_unsigned_int = .{ .of = .xword, .is = .byte } }}, + .dst_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .byte } }, .any }, .patterns = &.{ .{ .src = .{ .to_sse, .none, .none } }, }, @@ -43850,7 +47649,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, .{ ._, .vp_, .@"and", .dst0x, .src0x, .lea(.tmp0x), ._ }, @@ -43858,7 +47657,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .xword, .is = .byte } }}, + .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .byte } }, .any }, .patterns = &.{ .{ .src = .{ .to_mut_sse, .none, .none } }, }, @@ -43873,7 +47672,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, .{ ._, .p_, .@"and", .dst0x, .lea(.tmp0x), ._, ._ }, @@ -43884,7 +47683,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .scalar_unsigned_int = .{ .of = .xword, .is = .byte } }}, + .dst_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .byte } }, .any }, .patterns = &.{ .{ .src = .{ .to_mut_sse, .none, .none } }, }, @@ -43899,7 +47698,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, .{ ._, .p_, .@"and", .dst0x, .lea(.tmp0x), ._, ._ }, @@ -43907,7 +47706,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, null, null, null }, .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .scalar_unsigned_int = .{ .of = .xword, .is = .byte } }}, + .dst_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .byte } }, .any }, .patterns = &.{ .{ .src = .{ .to_mut_sse, .none, .none } }, }, @@ -43922,7 +47721,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, .{ ._, ._ps, .@"and", .dst0x, .lea(.tmp0x), ._, ._ }, @@ -43930,7 +47729,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx2, null, null, null }, .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .yword, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .yword, .is = .byte } }}, + .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .yword, .is = .byte } }, .any }, .patterns = &.{ .{ .src = .{ .to_sse, .none, .none } }, }, @@ -43945,7 +47744,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, .{ ._, .vp_, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ }, @@ -43956,7 +47755,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx2, null, null, null }, .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .yword, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .scalar_unsigned_int = .{ .of = .yword, .is = .byte } }}, + .dst_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .yword, .is = .byte } }, .any }, .patterns = &.{ .{ .src = .{ .to_sse, .none, .none } }, }, @@ -43971,7 +47770,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, .{ ._, .vp_, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ }, @@ -43979,7 +47778,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx2, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .byte } }}, + .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .byte } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -43994,7 +47793,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.tmp4), ._, ._ }, @@ -44012,7 +47811,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx2, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .byte } }}, + .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .byte } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -44027,7 +47826,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ }, @@ -44041,7 +47840,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .byte } }}, + .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .byte } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -44056,7 +47855,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.tmp4), ._, ._ }, @@ -44074,7 +47873,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .byte } }}, + .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .byte } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -44089,7 +47888,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ }, @@ -44103,7 +47902,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .byte } }}, + .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .byte } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -44118,7 +47917,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.tmp4), ._, ._ }, @@ -44137,7 +47936,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .byte } }}, + .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .byte } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -44152,7 +47951,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ }, @@ -44167,7 +47966,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .byte } }}, + .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .byte } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -44182,7 +47981,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ }, @@ -44197,7 +47996,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .slow_incdec, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_exact_signed_int = .{ .of = .byte, .is = 1 } }}, + .dst_constraints = .{ .{ .multiple_scalar_exact_signed_int = .{ .of = .byte, .is = 1 } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -44212,7 +48011,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -44225,7 +48024,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { } }, }, .{ .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_exact_signed_int = .{ .of = .byte, .is = 1 } }}, + .dst_constraints = .{ .{ .multiple_scalar_exact_signed_int = .{ .of = .byte, .is = 1 } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -44240,7 +48039,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -44254,7 +48053,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .slow_incdec, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }}, + .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -44269,7 +48068,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -44282,7 +48081,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { } }, }, .{ .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }}, + .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -44297,7 +48096,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -44311,7 +48110,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .slow_incdec, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }}, + .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -44326,7 +48125,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -44338,7 +48137,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { } }, }, .{ .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }}, + .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -44353,7 +48152,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -44366,7 +48165,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .slow_incdec, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_exact_int = .{ .of = .byte, .is = 8 } }}, + .dst_constraints = .{ .{ .multiple_scalar_exact_int = .{ .of = .byte, .is = 8 } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -44381,7 +48180,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -44392,7 +48191,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { } }, }, .{ .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_exact_int = .{ .of = .byte, .is = 8 } }}, + .dst_constraints = .{ .{ .multiple_scalar_exact_int = .{ .of = .byte, .is = 8 } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -44407,7 +48206,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -44419,7 +48218,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .slow_incdec, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }}, + .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -44434,7 +48233,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -44447,7 +48246,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { } }, }, .{ .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }}, + .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -44462,7 +48261,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -44476,7 +48275,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .slow_incdec, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }}, + .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -44491,7 +48290,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -44503,7 +48302,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { } }, }, .{ .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }}, + .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -44518,7 +48317,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -44531,7 +48330,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .slow_incdec, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_exact_int = .{ .of = .byte, .is = 8 } }}, + .dst_constraints = .{ .{ .multiple_scalar_exact_int = .{ .of = .byte, .is = 8 } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -44546,7 +48345,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -44557,7 +48356,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { } }, }, .{ .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_exact_int = .{ .of = .byte, .is = 8 } }}, + .dst_constraints = .{ .{ .multiple_scalar_exact_int = .{ .of = .byte, .is = 8 } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -44572,7 +48371,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -44584,7 +48383,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .slow_incdec, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }}, + .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -44599,7 +48398,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -44612,7 +48411,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { } }, }, .{ .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }}, + .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -44627,7 +48426,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -44641,7 +48440,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .bmi2, .slow_incdec, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }}, + .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -44656,7 +48455,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -44669,7 +48468,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .bmi2, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }}, + .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -44684,7 +48483,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -44697,7 +48496,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .slow_incdec, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }}, + .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -44712,7 +48511,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -44724,7 +48523,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { } }, }, .{ .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }}, + .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -44739,7 +48538,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -44752,7 +48551,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .slow_incdec, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .qword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_exact_int = .{ .of = .byte, .is = 8 } }}, + .dst_constraints = .{ .{ .multiple_scalar_exact_int = .{ .of = .byte, .is = 8 } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -44767,7 +48566,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -44778,7 +48577,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { } }, }, .{ .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .qword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_exact_int = .{ .of = .byte, .is = 8 } }}, + .dst_constraints = .{ .{ .multiple_scalar_exact_int = .{ .of = .byte, .is = 8 } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -44793,7 +48592,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -44805,7 +48604,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .slow_incdec, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }}, + .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -44820,7 +48619,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -44833,7 +48632,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { } }, }, .{ .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }}, + .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -44848,7 +48647,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -44862,7 +48661,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .bmi2, .slow_incdec, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }}, + .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -44877,7 +48676,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -44890,7 +48689,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .bmi2, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }}, + .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -44905,7 +48704,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -44918,7 +48717,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .slow_incdec, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }}, + .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -44933,7 +48732,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -44945,7 +48744,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { } }, }, .{ .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }}, + .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -44960,7 +48759,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -44973,7 +48772,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .slow_incdec, null, null, null }, .src_constraints = .{ .any_scalar_int, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_exact_int = .{ .of = .byte, .is = 8 } }}, + .dst_constraints = .{ .{ .multiple_scalar_exact_int = .{ .of = .byte, .is = 8 } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -44988,7 +48787,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -45001,7 +48800,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { } }, }, .{ .src_constraints = .{ .any_scalar_int, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_exact_int = .{ .of = .byte, .is = 8 } }}, + .dst_constraints = .{ .{ .multiple_scalar_exact_int = .{ .of = .byte, .is = 8 } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -45016,7 +48815,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -45030,7 +48829,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .slow_incdec, null, null, null }, .src_constraints = .{ .any_scalar_signed_int, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }}, + .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -45045,7 +48844,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -45060,7 +48859,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { } }, }, .{ .src_constraints = .{ .any_scalar_signed_int, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }}, + .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -45075,7 +48874,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -45091,7 +48890,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .bmi2, .slow_incdec, null, null }, .src_constraints = .{ .any_scalar_unsigned_int, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }}, + .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -45106,7 +48905,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -45121,7 +48920,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .bmi2, null, null, null }, .src_constraints = .{ .any_scalar_unsigned_int, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }}, + .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -45136,7 +48935,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -45151,7 +48950,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .slow_incdec, null, null, null }, .src_constraints = .{ .any_scalar_unsigned_int, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }}, + .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -45166,7 +48965,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -45180,7 +48979,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { } }, }, .{ .src_constraints = .{ .any_scalar_unsigned_int, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }}, + .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -45195,7 +48994,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -45210,11 +49009,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .xword, .is = .word } }}, + .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .vp_w, .sll, .dst0x, .src0x, .uia(16, .dst0, .sub_bit_size), ._ }, .{ ._, .vp_w, .sra, .dst0x, .dst0x, .uia(16, .dst0, .sub_bit_size), ._ }, @@ -45222,7 +49021,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .scalar_unsigned_int = .{ .of = .xword, .is = .word } }}, + .dst_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_sse, .none, .none } }, }, @@ -45237,7 +49036,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, .{ ._, .vp_, .@"and", .dst0x, .src0x, .lea(.tmp0x), ._ }, @@ -45245,11 +49044,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .xword, .is = .word } }}, + .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mut_sse, .none, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{ .{ ._, .p_w, .sll, .dst0x, .uia(16, .dst0, .sub_bit_size), ._, ._ }, .{ ._, .p_w, .sra, .dst0x, .uia(16, .dst0, .sub_bit_size), ._, ._ }, @@ -45257,7 +49056,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .scalar_unsigned_int = .{ .of = .xword, .is = .word } }}, + .dst_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mut_sse, .none, .none } }, }, @@ -45272,7 +49071,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, .{ ._, .p_, .@"and", .dst0x, .lea(.tmp0x), ._, ._ }, @@ -45280,7 +49079,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, null, null, null }, .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .scalar_unsigned_int = .{ .of = .xword, .is = .word } }}, + .dst_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mut_sse, .none, .none } }, }, @@ -45295,7 +49094,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, .{ ._, ._ps, .@"and", .dst0x, .lea(.tmp0x), ._, ._ }, @@ -45303,11 +49102,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx2, null, null, null }, .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .yword, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .yword, .is = .word } }}, + .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .yword, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .vp_w, .sll, .dst0y, .src0y, .uia(16, .dst0, .sub_bit_size), ._ }, .{ ._, .vp_w, .sra, .dst0y, .dst0y, .uia(16, .dst0, .sub_bit_size), ._ }, @@ -45315,7 +49114,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx2, null, null, null }, .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .yword, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .scalar_unsigned_int = .{ .of = .yword, .is = .word } }}, + .dst_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .yword, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_sse, .none, .none } }, }, @@ -45330,7 +49129,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, .{ ._, .vp_, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ }, @@ -45338,7 +49137,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx2, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -45353,7 +49152,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -45367,7 +49166,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx2, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -45382,7 +49181,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ }, @@ -45396,7 +49195,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -45411,7 +49210,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -45425,7 +49224,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -45440,7 +49239,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ }, @@ -45454,7 +49253,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -45469,7 +49268,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -45483,7 +49282,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -45498,7 +49297,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ }, @@ -45513,7 +49312,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -45528,7 +49327,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ }, @@ -45542,7 +49341,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { } }, }, .{ .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_exact_int = .{ .of = .word, .is = 16 } }}, + .dst_constraints = .{ .{ .multiple_scalar_exact_int = .{ .of = .word, .is = 16 } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -45557,7 +49356,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -45568,7 +49367,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { } }, }, .{ .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -45583,7 +49382,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -45597,7 +49396,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .fast_imm16, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -45612,7 +49411,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -45624,7 +49423,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { } }, }, .{ .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -45639,7 +49438,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -45651,7 +49450,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { } }, }, .{ .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_exact_int = .{ .of = .word, .is = 16 } }}, + .dst_constraints = .{ .{ .multiple_scalar_exact_int = .{ .of = .word, .is = 16 } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -45666,7 +49465,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -45677,7 +49476,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { } }, }, .{ .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -45692,7 +49491,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -45706,7 +49505,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .bmi2, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -45721,7 +49520,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -45734,7 +49533,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .fast_imm16, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -45749,7 +49548,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -45761,7 +49560,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { } }, }, .{ .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -45776,7 +49575,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -45788,7 +49587,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { } }, }, .{ .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .qword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_exact_int = .{ .of = .word, .is = 16 } }}, + .dst_constraints = .{ .{ .multiple_scalar_exact_int = .{ .of = .word, .is = 16 } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -45803,7 +49602,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -45814,7 +49613,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { } }, }, .{ .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -45829,7 +49628,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -45843,7 +49642,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .bmi2, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -45858,7 +49657,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -45871,7 +49670,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .fast_imm16, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -45886,7 +49685,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -45898,7 +49697,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { } }, }, .{ .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -45913,7 +49712,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -45925,7 +49724,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { } }, }, .{ .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .xword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_exact_int = .{ .of = .word, .is = 16 } }}, + .dst_constraints = .{ .{ .multiple_scalar_exact_int = .{ .of = .word, .is = 16 } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -45940,7 +49739,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -45951,7 +49750,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { } }, }, .{ .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -45966,7 +49765,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -45980,7 +49779,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .bmi2, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -45995,7 +49794,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -46008,7 +49807,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .fast_imm16, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -46023,7 +49822,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -46035,7 +49834,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { } }, }, .{ .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -46050,7 +49849,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -46062,7 +49861,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { } }, }, .{ .src_constraints = .{ .any_scalar_int, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_exact_int = .{ .of = .word, .is = 16 } }}, + .dst_constraints = .{ .{ .multiple_scalar_exact_int = .{ .of = .word, .is = 16 } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -46077,7 +49876,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -46090,7 +49889,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { } }, }, .{ .src_constraints = .{ .any_scalar_signed_int, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -46105,7 +49904,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -46121,7 +49920,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .bmi2, null, null, null }, .src_constraints = .{ .any_scalar_unsigned_int, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -46136,7 +49935,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -46151,7 +49950,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .fast_imm16, null, null, null }, .src_constraints = .{ .any_scalar_unsigned_int, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -46166,7 +49965,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -46180,7 +49979,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { } }, }, .{ .src_constraints = .{ .any_scalar_unsigned_int, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -46195,7 +49994,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -46210,11 +50009,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .xword, .is = .dword } }}, + .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .vp_d, .sll, .dst0x, .src0x, .uia(32, .dst0, .sub_bit_size), ._ }, .{ ._, .vp_d, .sra, .dst0x, .dst0x, .uia(32, .dst0, .sub_bit_size), ._ }, @@ -46222,7 +50021,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_unsigned_int = .{ .of = .xword, .is = .dword } }}, + .dst_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_sse, .none, .none } }, }, @@ -46237,7 +50036,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, .{ ._, .vp_, .@"and", .dst0x, .src0x, .lea(.tmp0x), ._ }, @@ -46245,11 +50044,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .xword, .is = .dword } }}, + .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mut_sse, .none, .none } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{ .{ ._, .p_d, .sll, .dst0x, .uia(32, .dst0, .sub_bit_size), ._, ._ }, .{ ._, .p_d, .sra, .dst0x, .uia(32, .dst0, .sub_bit_size), ._, ._ }, @@ -46257,7 +50056,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_unsigned_int = .{ .of = .xword, .is = .dword } }}, + .dst_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mut_sse, .none, .none } }, }, @@ -46272,7 +50071,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, .{ ._, .p_, .@"and", .dst0x, .lea(.tmp0x), ._, ._ }, @@ -46280,7 +50079,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, null, null, null }, .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_unsigned_int = .{ .of = .xword, .is = .dword } }}, + .dst_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mut_sse, .none, .none } }, }, @@ -46295,7 +50094,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, .{ ._, ._ps, .@"and", .dst0x, .lea(.tmp0x), ._, ._ }, @@ -46303,11 +50102,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx2, null, null, null }, .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .yword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .yword, .is = .dword } }}, + .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .yword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .vp_d, .sll, .dst0y, .src0y, .uia(32, .dst0, .sub_bit_size), ._ }, .{ ._, .vp_d, .sra, .dst0y, .dst0y, .uia(32, .dst0, .sub_bit_size), ._ }, @@ -46315,7 +50114,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx2, null, null, null }, .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .yword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_unsigned_int = .{ .of = .yword, .is = .dword } }}, + .dst_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .yword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_sse, .none, .none } }, }, @@ -46330,7 +50129,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, .{ ._, .vp_, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ }, @@ -46338,7 +50137,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx2, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -46353,7 +50152,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -46367,7 +50166,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx2, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -46382,7 +50181,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ }, @@ -46396,7 +50195,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -46411,7 +50210,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -46425,7 +50224,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -46440,7 +50239,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ }, @@ -46454,7 +50253,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -46469,7 +50268,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -46483,7 +50282,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -46498,7 +50297,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ }, @@ -46513,7 +50312,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -46528,7 +50327,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ }, @@ -46542,7 +50341,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { } }, }, .{ .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_exact_int = .{ .of = .dword, .is = 32 } }}, + .dst_constraints = .{ .{ .multiple_scalar_exact_int = .{ .of = .dword, .is = 32 } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -46557,7 +50356,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -46568,7 +50367,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { } }, }, .{ .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -46583,7 +50382,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -46597,7 +50396,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .bmi2, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -46612,7 +50411,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -46624,7 +50423,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { } }, }, .{ .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -46639,7 +50438,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -46651,7 +50450,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { } }, }, .{ .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .qword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_exact_int = .{ .of = .dword, .is = 32 } }}, + .dst_constraints = .{ .{ .multiple_scalar_exact_int = .{ .of = .dword, .is = 32 } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -46666,7 +50465,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -46677,7 +50476,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { } }, }, .{ .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -46692,7 +50491,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -46706,7 +50505,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .bmi2, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -46721,7 +50520,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -46733,7 +50532,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { } }, }, .{ .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -46748,7 +50547,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -46760,7 +50559,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { } }, }, .{ .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .xword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_exact_int = .{ .of = .dword, .is = 32 } }}, + .dst_constraints = .{ .{ .multiple_scalar_exact_int = .{ .of = .dword, .is = 32 } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -46775,7 +50574,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -46786,7 +50585,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { } }, }, .{ .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -46801,7 +50600,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -46815,7 +50614,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .bmi2, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -46830,7 +50629,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -46842,7 +50641,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { } }, }, .{ .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -46857,7 +50656,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -46869,7 +50668,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { } }, }, .{ .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .yword, .is = .yword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_exact_int = .{ .of = .dword, .is = 32 } }}, + .dst_constraints = .{ .{ .multiple_scalar_exact_int = .{ .of = .dword, .is = 32 } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -46884,7 +50683,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -46895,7 +50694,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { } }, }, .{ .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .yword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -46910,7 +50709,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -46924,7 +50723,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .bmi2, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .yword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -46939,7 +50738,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -46951,7 +50750,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { } }, }, .{ .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .yword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -46966,7 +50765,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -46978,7 +50777,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { } }, }, .{ .src_constraints = .{ .any_scalar_int, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_exact_int = .{ .of = .dword, .is = 32 } }}, + .dst_constraints = .{ .{ .multiple_scalar_exact_int = .{ .of = .dword, .is = 32 } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -46993,7 +50792,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -47006,7 +50805,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { } }, }, .{ .src_constraints = .{ .any_scalar_signed_int, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -47021,7 +50820,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -47037,7 +50836,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .bmi2, null, null, null }, .src_constraints = .{ .any_scalar_unsigned_int, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -47052,7 +50851,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -47066,7 +50865,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { } }, }, .{ .src_constraints = .{ .any_scalar_unsigned_int, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -47081,7 +50880,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -47096,7 +50895,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .xword, .is = .qword } }}, + .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_sse, .none, .none } }, }, @@ -47111,7 +50910,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, .{ ._, .vp_, .@"and", .dst0x, .src0x, .lea(.tmp0x), ._ }, @@ -47122,7 +50921,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_unsigned_int = .{ .of = .xword, .is = .qword } }}, + .dst_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_sse, .none, .none } }, }, @@ -47137,7 +50936,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, .{ ._, .vp_, .@"and", .dst0x, .src0x, .lea(.tmp0x), ._ }, @@ -47145,7 +50944,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .xword, .is = .qword } }}, + .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mut_sse, .none, .none } }, }, @@ -47160,7 +50959,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, .{ ._, .p_, .@"and", .dst0x, .lea(.tmp0x), ._, ._ }, @@ -47171,7 +50970,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_unsigned_int = .{ .of = .xword, .is = .qword } }}, + .dst_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mut_sse, .none, .none } }, }, @@ -47186,7 +50985,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, .{ ._, .p_, .@"and", .dst0x, .lea(.tmp0x), ._, ._ }, @@ -47194,7 +50993,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, null, null, null }, .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_unsigned_int = .{ .of = .xword, .is = .qword } }}, + .dst_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mut_sse, .none, .none } }, }, @@ -47209,7 +51008,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, .{ ._, ._ps, .@"and", .dst0x, .lea(.tmp0x), ._, ._ }, @@ -47217,7 +51016,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx2, null, null, null }, .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .yword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .yword, .is = .qword } }}, + .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .yword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_sse, .none, .none } }, }, @@ -47232,7 +51031,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, .{ ._, .vp_, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ }, @@ -47243,7 +51042,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx2, null, null, null }, .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .yword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_unsigned_int = .{ .of = .yword, .is = .qword } }}, + .dst_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .yword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_sse, .none, .none } }, }, @@ -47258,7 +51057,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, .{ ._, .vp_, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ }, @@ -47266,7 +51065,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx2, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -47281,7 +51080,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.tmp4), ._, ._ }, @@ -47299,7 +51098,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx2, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -47314,7 +51113,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ }, @@ -47328,7 +51127,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -47343,7 +51142,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.tmp4), ._, ._ }, @@ -47361,7 +51160,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -47376,7 +51175,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ }, @@ -47390,7 +51189,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -47405,7 +51204,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.tmp4), ._, ._ }, @@ -47424,7 +51223,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -47439,7 +51238,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ }, @@ -47454,7 +51253,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -47469,7 +51268,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ }, @@ -47484,7 +51283,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", null, null, null }, .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .qword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_exact_int = .{ .of = .qword, .is = 64 } }}, + .dst_constraints = .{ .{ .multiple_scalar_exact_int = .{ .of = .qword, .is = 64 } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -47499,7 +51298,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -47511,7 +51310,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", null, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -47526,7 +51325,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -47540,7 +51339,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .bmi2, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -47555,7 +51354,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -47568,7 +51367,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", null, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -47583,7 +51382,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -47596,7 +51395,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", null, null, null }, .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .xword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_exact_int = .{ .of = .qword, .is = 64 } }}, + .dst_constraints = .{ .{ .multiple_scalar_exact_int = .{ .of = .qword, .is = 64 } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -47611,7 +51410,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -47623,7 +51422,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", null, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -47638,7 +51437,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -47652,7 +51451,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .bmi2, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -47667,7 +51466,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -47680,7 +51479,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", null, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -47695,7 +51494,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -47708,7 +51507,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", null, null, null }, .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .yword, .is = .yword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_exact_int = .{ .of = .qword, .is = 64 } }}, + .dst_constraints = .{ .{ .multiple_scalar_exact_int = .{ .of = .qword, .is = 64 } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -47723,7 +51522,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -47735,7 +51534,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", null, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .yword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -47750,7 +51549,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -47764,7 +51563,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .bmi2, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .yword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -47779,7 +51578,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -47792,7 +51591,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", null, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .yword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -47807,7 +51606,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -47820,7 +51619,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", null, null, null }, .src_constraints = .{ .any_scalar_int, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_exact_int = .{ .of = .qword, .is = 64 } }}, + .dst_constraints = .{ .{ .multiple_scalar_exact_int = .{ .of = .qword, .is = 64 } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -47835,7 +51634,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -47849,7 +51648,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", null, null, null }, .src_constraints = .{ .any_scalar_signed_int, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -47864,7 +51663,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -47880,7 +51679,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .bmi2, null, null }, .src_constraints = .{ .any_scalar_unsigned_int, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -47895,7 +51694,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -47910,7 +51709,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", null, null, null }, .src_constraints = .{ .any_scalar_unsigned_int, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -47925,7 +51724,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -47940,7 +51739,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .slow_incdec, null, null }, .src_constraints = .{ .any_scalar_int, .any, .any }, - .dst_constraints = .{.{ .scalar_exact_remainder_int = .{ .of = .xword, .is = .xword } }}, + .dst_constraints = .{ .{ .scalar_exact_remainder_int = .{ .of = .xword, .is = .xword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -47955,7 +51754,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, @@ -47970,7 +51769,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", null, null, null }, .src_constraints = .{ .any_scalar_int, .any, .any }, - .dst_constraints = .{.{ .scalar_exact_remainder_int = .{ .of = .xword, .is = .xword } }}, + .dst_constraints = .{ .{ .scalar_exact_remainder_int = .{ .of = .xword, .is = .xword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -47985,7 +51784,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, @@ -48000,7 +51799,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .slow_incdec, null, null }, .src_constraints = .{ .any_scalar_signed_int, .any, .any }, - .dst_constraints = .{.{ .scalar_exact_remainder_signed_int = .{ .of = .xword, .is = .qword } }}, + .dst_constraints = .{ .{ .scalar_exact_remainder_signed_int = .{ .of = .xword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -48015,7 +51814,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, @@ -48035,7 +51834,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", null, null, null }, .src_constraints = .{ .any_scalar_signed_int, .any, .any }, - .dst_constraints = .{.{ .scalar_exact_remainder_signed_int = .{ .of = .xword, .is = .qword } }}, + .dst_constraints = .{ .{ .scalar_exact_remainder_signed_int = .{ .of = .xword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -48050,7 +51849,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, @@ -48070,7 +51869,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .slow_incdec, null, null }, .src_constraints = .{ .any_scalar_signed_int, .any, .any }, - .dst_constraints = .{.{ .scalar_remainder_signed_int = .{ .of = .xword, .is = .qword } }}, + .dst_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .xword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -48085,7 +51884,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, @@ -48107,7 +51906,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", null, null, null }, .src_constraints = .{ .any_scalar_signed_int, .any, .any }, - .dst_constraints = .{.{ .scalar_remainder_signed_int = .{ .of = .xword, .is = .qword } }}, + .dst_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .xword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -48122,7 +51921,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, @@ -48144,7 +51943,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .slow_incdec, null, null }, .src_constraints = .{ .any_scalar_signed_int, .any, .any }, - .dst_constraints = .{.{ .scalar_remainder_signed_int = .{ .of = .xword, .is = .xword } }}, + .dst_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .xword, .is = .xword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -48159,7 +51958,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, @@ -48178,7 +51977,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", null, null, null }, .src_constraints = .{ .any_scalar_signed_int, .any, .any }, - .dst_constraints = .{.{ .scalar_remainder_signed_int = .{ .of = .xword, .is = .xword } }}, + .dst_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .xword, .is = .xword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -48193,7 +51992,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, @@ -48212,7 +52011,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .slow_incdec, null, null }, .src_constraints = .{ .any_scalar_unsigned_int, .any, .any }, - .dst_constraints = .{.{ .scalar_exact_remainder_unsigned_int = .{ .of = .xword, .is = .qword } }}, + .dst_constraints = .{ .{ .scalar_exact_remainder_unsigned_int = .{ .of = .xword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -48227,7 +52026,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, @@ -48244,7 +52043,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", null, null, null }, .src_constraints = .{ .any_scalar_unsigned_int, .any, .any }, - .dst_constraints = .{.{ .scalar_exact_remainder_unsigned_int = .{ .of = .xword, .is = .qword } }}, + .dst_constraints = .{ .{ .scalar_exact_remainder_unsigned_int = .{ .of = .xword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -48259,7 +52058,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, @@ -48276,7 +52075,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .bmi2, .slow_incdec, null }, .src_constraints = .{ .any_scalar_unsigned_int, .any, .any }, - .dst_constraints = .{.{ .scalar_remainder_unsigned_int = .{ .of = .xword, .is = .qword } }}, + .dst_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .xword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -48291,7 +52090,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, @@ -48311,7 +52110,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .bmi2, null, null }, .src_constraints = .{ .any_scalar_unsigned_int, .any, .any }, - .dst_constraints = .{.{ .scalar_remainder_unsigned_int = .{ .of = .xword, .is = .qword } }}, + .dst_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .xword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -48326,7 +52125,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, @@ -48346,7 +52145,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .bmi2, .slow_incdec, null }, .src_constraints = .{ .any_scalar_unsigned_int, .any, .any }, - .dst_constraints = .{.{ .scalar_remainder_unsigned_int = .{ .of = .xword, .is = .xword } }}, + .dst_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -48361,7 +52160,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, @@ -48379,7 +52178,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .bmi2, null, null }, .src_constraints = .{ .any_scalar_unsigned_int, .any, .any }, - .dst_constraints = .{.{ .scalar_remainder_unsigned_int = .{ .of = .xword, .is = .xword } }}, + .dst_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -48394,7 +52193,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, @@ -48412,7 +52211,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .slow_incdec, null, null }, .src_constraints = .{ .any_scalar_unsigned_int, .any, .any }, - .dst_constraints = .{.{ .scalar_remainder_unsigned_int = .{ .of = .xword, .is = .qword } }}, + .dst_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .xword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -48427,7 +52226,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, @@ -48447,7 +52246,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", null, null, null }, .src_constraints = .{ .any_scalar_unsigned_int, .any, .any }, - .dst_constraints = .{.{ .scalar_remainder_unsigned_int = .{ .of = .xword, .is = .qword } }}, + .dst_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .xword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -48462,7 +52261,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, @@ -48482,7 +52281,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .slow_incdec, null, null }, .src_constraints = .{ .any_scalar_unsigned_int, .any, .any }, - .dst_constraints = .{.{ .scalar_remainder_unsigned_int = .{ .of = .xword, .is = .xword } }}, + .dst_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -48497,7 +52296,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, @@ -48516,7 +52315,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", null, null, null }, .src_constraints = .{ .any_scalar_unsigned_int, .any, .any }, - .dst_constraints = .{.{ .scalar_remainder_unsigned_int = .{ .of = .xword, .is = .xword } }}, + .dst_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -48531,7 +52330,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, @@ -48558,6 +52357,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }; try res[0].finish(inst, &.{ty_op.operand}, &ops, cg); }, + .optional_payload => if (use_old) try cg.airOptionalPayload(inst) else { + const ty_op = air_datas[@intFromEnum(inst)].ty_op; + var ops = try cg.tempsFromOperands(inst, .{ty_op.operand}); + const pl = if (!hack_around_sema_opv_bugs or ty_op.ty.toType().hasRuntimeBitsIgnoreComptime(zcu)) + try ops[0].read(ty_op.ty.toType(), .{}, cg) + else + try cg.tempInit(ty_op.ty.toType(), .none); + try pl.finish(inst, &.{ty_op.operand}, &ops, cg); + }, .optional_payload_ptr => if (use_old) try cg.airOptionalPayloadPtr(inst) else { const ty_op = air_datas[@intFromEnum(inst)].ty_op; const ops = try cg.tempsFromOperands(inst, .{ty_op.operand}); @@ -48568,16 +52376,52 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { const opt_ty = cg.typeOf(ty_op.operand).childType(zcu); var ops = try cg.tempsFromOperands(inst, .{ty_op.operand}); if (!opt_ty.optionalReprIsPayload(zcu)) { - const opt_child_ty = opt_ty.optionalChild(zcu); - const opt_child_abi_size: i32 = @intCast(opt_child_ty.abiSize(zcu)); - try ops[0].toOffset(opt_child_abi_size, cg); + const opt_pl_ty = opt_ty.optionalChild(zcu); + const opt_pl_abi_size: i32 = @intCast(opt_pl_ty.abiSize(zcu)); + try ops[0].toOffset(opt_pl_abi_size, cg); var has_value = try cg.tempInit(.bool, .{ .immediate = 1 }); try ops[0].store(&has_value, .{}, cg); try has_value.die(cg); - try ops[0].toOffset(-opt_child_abi_size, cg); + try ops[0].toOffset(-opt_pl_abi_size, cg); } try ops[0].finish(inst, &.{ty_op.operand}, &ops, cg); }, + .wrap_optional => if (use_old) try cg.airWrapOptional(inst) else { + const ty_op = air_datas[@intFromEnum(inst)].ty_op; + const opt_ty = ty_op.ty.toType(); + const opt_pl_ty = cg.typeOf(ty_op.operand); + const opt_pl_abi_size: u31 = @intCast(opt_pl_ty.abiSize(zcu)); + var ops = try cg.tempsFromOperands(inst, .{ty_op.operand}); + var opt = try cg.tempAlloc(opt_ty); + try opt.write(&ops[0], .{}, cg); + if (!opt_ty.optionalReprIsPayload(zcu)) { + var has_value = try cg.tempInit(.bool, .{ .immediate = 1 }); + try opt.write(&has_value, .{ .disp = opt_pl_abi_size }, cg); + try has_value.die(cg); + } + try opt.finish(inst, &.{ty_op.operand}, &ops, cg); + }, + .unwrap_errunion_payload => if (use_old) try cg.airUnwrapErrUnionPayload(inst) else { + const ty_op = air_datas[@intFromEnum(inst)].ty_op; + const eu_pl_ty = ty_op.ty.toType(); + const eu_pl_off: i32 = @intCast(codegen.errUnionPayloadOffset(eu_pl_ty, zcu)); + var ops = try cg.tempsFromOperands(inst, .{ty_op.operand}); + const pl = if (!hack_around_sema_opv_bugs or eu_pl_ty.hasRuntimeBitsIgnoreComptime(zcu)) + try ops[0].read(eu_pl_ty, .{ .disp = eu_pl_off }, cg) + else + try cg.tempInit(eu_pl_ty, .none); + try pl.finish(inst, &.{ty_op.operand}, &ops, cg); + }, + .unwrap_errunion_err => if (use_old) try cg.airUnwrapErrUnionErr(inst) else { + const ty_op = air_datas[@intFromEnum(inst)].ty_op; + const eu_ty = cg.typeOf(ty_op.operand); + const eu_err_ty = ty_op.ty.toType(); + const eu_pl_ty = eu_ty.errorUnionPayload(zcu); + const eu_err_off: i32 = @intCast(codegen.errUnionErrorOffset(eu_pl_ty, zcu)); + var ops = try cg.tempsFromOperands(inst, .{ty_op.operand}); + const err = try ops[0].read(eu_err_ty, .{ .disp = eu_err_off }, cg); + try err.finish(inst, &.{ty_op.operand}, &ops, cg); + }, .unwrap_errunion_payload_ptr => if (use_old) try cg.airUnwrapErrUnionPayloadPtr(inst) else { const ty_op = air_datas[@intFromEnum(inst)].ty_op; const eu_ty = cg.typeOf(ty_op.operand).childType(zcu); @@ -48590,11 +52434,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unwrap_errunion_err_ptr => if (use_old) try cg.airUnwrapErrUnionErrPtr(inst) else { const ty_op = air_datas[@intFromEnum(inst)].ty_op; const eu_ty = cg.typeOf(ty_op.operand).childType(zcu); + const eu_err_ty = ty_op.ty.toType(); const eu_pl_ty = eu_ty.errorUnionPayload(zcu); const eu_err_off: i32 = @intCast(codegen.errUnionErrorOffset(eu_pl_ty, zcu)); var ops = try cg.tempsFromOperands(inst, .{ty_op.operand}); try ops[0].toOffset(eu_err_off, cg); - const err = try ops[0].load(eu_ty.errorUnionSet(zcu), .{}, cg); + const err = try ops[0].load(eu_err_ty, .{}, cg); try err.finish(inst, &.{ty_op.operand}, &ops, cg); }, .errunion_payload_ptr_set => if (use_old) try cg.airErrUnionPayloadPtrSet(inst) else { @@ -48606,12 +52451,37 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { const eu_pl_off: i32 = @intCast(codegen.errUnionPayloadOffset(eu_pl_ty, zcu)); var ops = try cg.tempsFromOperands(inst, .{ty_op.operand}); try ops[0].toOffset(eu_err_off, cg); - var no_err = try cg.tempInit(eu_err_ty, .{ .immediate = 0 }); - try ops[0].store(&no_err, .{}, cg); - try no_err.die(cg); + var err = try cg.tempInit(eu_err_ty, .{ .immediate = 0 }); + try ops[0].store(&err, .{}, cg); + try err.die(cg); try ops[0].toOffset(eu_pl_off - eu_err_off, cg); try ops[0].finish(inst, &.{ty_op.operand}, &ops, cg); }, + .wrap_errunion_payload => if (use_old) try cg.airWrapErrUnionPayload(inst) else { + const ty_op = air_datas[@intFromEnum(inst)].ty_op; + const eu_ty = ty_op.ty.toType(); + const eu_err_ty = eu_ty.errorUnionSet(zcu); + const eu_pl_ty = cg.typeOf(ty_op.operand); + const eu_err_off: u31 = @intCast(codegen.errUnionErrorOffset(eu_pl_ty, zcu)); + const eu_pl_off: u31 = @intCast(codegen.errUnionPayloadOffset(eu_pl_ty, zcu)); + var ops = try cg.tempsFromOperands(inst, .{ty_op.operand}); + var eu = try cg.tempAlloc(eu_ty); + try eu.write(&ops[0], .{ .disp = eu_pl_off }, cg); + var err = try cg.tempInit(eu_err_ty, .{ .immediate = 0 }); + try eu.write(&err, .{ .disp = eu_err_off }, cg); + try err.die(cg); + try eu.finish(inst, &.{ty_op.operand}, &ops, cg); + }, + .wrap_errunion_err => if (use_old) try cg.airWrapErrUnionErr(inst) else { + const ty_op = air_datas[@intFromEnum(inst)].ty_op; + const eu_ty = ty_op.ty.toType(); + const eu_pl_ty = eu_ty.errorUnionPayload(zcu); + const eu_err_off: u31 = @intCast(codegen.errUnionErrorOffset(eu_pl_ty, zcu)); + var ops = try cg.tempsFromOperands(inst, .{ty_op.operand}); + var eu = try cg.tempAlloc(eu_ty); + try eu.write(&ops[0], .{ .disp = eu_err_off }, cg); + try eu.finish(inst, &.{ty_op.operand}, &ops, cg); + }, .struct_field_ptr => if (use_old) try cg.airStructFieldPtr(inst) else { const ty_pl = air_datas[@intFromEnum(inst)].ty_pl; const extra = cg.air.extraData(Air.StructField, ty_pl.payload).data; @@ -48659,8 +52529,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .@"packed" => break :fallback try cg.airStructFieldVal(inst), }; var ops = try cg.tempsFromOperands(inst, .{extra.struct_operand}); - // hack around Sema OPV bugs - var res = if (field_ty.hasRuntimeBitsIgnoreComptime(zcu)) + var res = if (!hack_around_sema_opv_bugs or field_ty.hasRuntimeBitsIgnoreComptime(zcu)) try ops[0].read(field_ty, .{ .disp = field_off }, cg) else try cg.tempInit(field_ty, .none); @@ -48671,8 +52540,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { const union_ty = cg.typeOf(bin_op.lhs).childType(zcu); const union_layout = union_ty.unionGetLayout(zcu); var ops = try cg.tempsFromOperands(inst, .{ bin_op.lhs, bin_op.rhs }); - // hack around Sema OPV bugs - if (union_layout.tag_size > 0) try ops[0].store(&ops[1], .{ + if (!hack_around_sema_opv_bugs or union_layout.tag_size > 0) try ops[0].store(&ops[1], .{ .disp = @intCast(union_layout.tagOffset()), }, cg); const res = try cg.tempInit(.void, .none); @@ -48720,6 +52588,200 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { try ops[0].toOffset(0, cg); try ops[0].finish(inst, &.{ty_op.operand}, &ops, cg); }, + .array_elem_val => if (use_old) try cg.airArrayElemVal(inst) else { + const bin_op = air_datas[@intFromEnum(inst)].bin_op; + const array_ty = cg.typeOf(bin_op.lhs); + const res_ty = array_ty.elemType2(zcu); + var ops = try cg.tempsFromOperands(inst, .{ bin_op.lhs, bin_op.rhs }); + var res: [1]Temp = undefined; + cg.select(&res, &.{res_ty}, &ops, comptime &.{ .{ + .src_constraints = .{ .{ .bool_vec = .dword }, .any, .any }, + .patterns = &.{ + .{ .src = .{ .to_gpr, .imm32, .none } }, + }, + .dst_temps = .{ .{ .cc = .c }, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .bt, .src0d, .ua(.none, .add_src1_rem_32), ._, ._ }, + } }, + }, .{ + .src_constraints = .{ .{ .bool_vec = .dword }, .any, .any }, + .patterns = &.{ + .{ .src = .{ .to_gpr, .to_gpr, .none } }, + }, + .dst_temps = .{ .{ .cc = .c }, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .bt, .src0d, .src1d, ._, ._ }, + } }, + }, .{ + .required_features = .{ .@"64bit", null, null, null }, + .src_constraints = .{ .{ .bool_vec = .qword }, .any, .any }, + .patterns = &.{ + .{ .src = .{ .to_gpr, .imm32, .none } }, + }, + .dst_temps = .{ .{ .cc = .c }, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .bt, .src0q, .ua(.none, .add_src1_rem_64), ._, ._ }, + } }, + }, .{ + .required_features = .{ .@"64bit", null, null, null }, + .src_constraints = .{ .{ .bool_vec = .qword }, .any, .any }, + .patterns = &.{ + .{ .src = .{ .to_gpr, .to_gpr, .none } }, + }, + .dst_temps = .{ .{ .cc = .c }, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .bt, .src0q, .src1q, ._, ._ }, + } }, + }, .{ + .src_constraints = .{ .any_bool_vec, .any, .any }, + .patterns = &.{ + .{ .src = .{ .to_mem, .imm32, .none } }, + }, + .dst_temps = .{ .{ .cc = .c }, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .bt, .mema(.src0d, .add_src1_div_8_down_4), .ua(.none, .add_src1_rem_32), ._, ._ }, + } }, + }, .{ + .src_constraints = .{ .any_bool_vec, .any, .any }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_gpr, .none } }, + }, + .dst_temps = .{ .{ .cc = .c }, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .bt, .src0d, .src1d, ._, ._ }, + } }, + }, .{ + .dst_constraints = .{ .{ .int = .byte }, .any }, + .patterns = &.{ + .{ .src = .{ .to_mem, .simm32, .none } }, + }, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, + .each = .{ .once = &.{ + .{ ._, ._, .movzx, .dst0d, .mema(.src0b, .add_src0_elem_size_mul_src1), ._, ._ }, + } }, + }, .{ + .dst_constraints = .{ .{ .int = .byte }, .any }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_gpr, .none } }, + }, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, + .each = .{ .once = &.{ + .{ ._, ._, .movzx, .dst0d, .memi(.src0b, .src1), ._, ._ }, + } }, + }, .{ + .dst_constraints = .{ .{ .int = .word }, .any }, + .patterns = &.{ + .{ .src = .{ .to_mem, .simm32, .none } }, + }, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, + .each = .{ .once = &.{ + .{ ._, ._, .movzx, .dst0d, .mema(.src0w, .add_src0_elem_size_mul_src1), ._, ._ }, + } }, + }, .{ + .dst_constraints = .{ .{ .int = .word }, .any }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_gpr, .none } }, + }, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, + .each = .{ .once = &.{ + .{ ._, ._, .movzx, .dst0d, .memsi(.src0w, .@"2", .src1), ._, ._ }, + } }, + }, .{ + .dst_constraints = .{ .{ .int = .dword }, .any }, + .patterns = &.{ + .{ .src = .{ .to_mem, .simm32, .none } }, + }, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .dst0d, .mema(.src0d, .add_src0_elem_size_mul_src1), ._, ._ }, + } }, + }, .{ + .dst_constraints = .{ .{ .int = .dword }, .any }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_gpr, .none } }, + }, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .dst0d, .memsi(.src0d, .@"4", .src1), ._, ._ }, + } }, + }, .{ + .dst_constraints = .{ .{ .int = .qword }, .any }, + .patterns = &.{ + .{ .src = .{ .to_mem, .simm32, .none } }, + }, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .dst0q, .mema(.src0q, .add_src0_elem_size_mul_src1), ._, ._ }, + } }, + }, .{ + .required_features = .{ .@"64bit", null, null, null }, + .dst_constraints = .{ .{ .int = .qword }, .any }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_gpr, .none } }, + }, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .dst0q, .memsi(.src0q, .@"8", .src1), ._, ._ }, + } }, + } }) catch |err| switch (err) { + error.SelectFailed => { + const elem_size = res_ty.abiSize(zcu); + const base = try cg.tempAllocReg(.usize, abi.RegisterClass.gp); + while (try ops[0].toBase(false, cg) or + try ops[1].toRegClass(true, .general_purpose, cg)) + {} + const base_reg = base.tracking(cg).short.register.to64(); + const rhs_reg = ops[1].tracking(cg).short.register.to64(); + if (!std.math.isPowerOfTwo(elem_size)) { + try cg.spillEflagsIfOccupied(); + try cg.asmRegisterRegisterImmediate( + .{ .i_, .mul }, + rhs_reg, + rhs_reg, + .u(elem_size), + ); + try cg.asmRegisterMemory( + .{ ._, .lea }, + base_reg, + try ops[0].tracking(cg).short.mem(cg, .{ .index = rhs_reg }), + ); + } else if (elem_size > 8) { + try cg.spillEflagsIfOccupied(); + try cg.asmRegisterImmediate( + .{ ._l, .sh }, + rhs_reg, + .u(std.math.log2_int(u64, elem_size)), + ); + try cg.asmRegisterMemory( + .{ ._, .lea }, + base_reg, + try ops[0].tracking(cg).short.mem(cg, .{ .index = rhs_reg }), + ); + } else try cg.asmRegisterMemory( + .{ ._, .lea }, + base_reg, + try ops[0].tracking(cg).short.mem(cg, .{ + .index = rhs_reg, + .scale = .fromFactor(@intCast(elem_size)), + }), + ); + // Hack around Sema insanity: lhs could be an arbitrarily large comptime-known array + // which could easily get spilled by the upcoming `load`, which would infinite recurse + // since spilling an array requires the same operation that triggered the spill. + try ops[0].die(cg); + ops[0] = base; + res[0] = try ops[0].load(res_ty, .{}, cg); + }, + else => |e| return e, + }; + try res[0].finish(inst, &.{ bin_op.lhs, bin_op.rhs }, &ops, cg); + }, .slice_elem_val, .ptr_elem_val => |air_tag| if (use_old) switch (air_tag) { else => unreachable, .slice_elem_val => try cg.airSliceElemVal(inst), @@ -48730,76 +52792,76 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { var ops = try cg.tempsFromOperands(inst, .{ bin_op.lhs, bin_op.rhs }); try ops[0].toSlicePtr(cg); var res: [1]Temp = undefined; - if (res_ty.hasRuntimeBitsIgnoreComptime(zcu)) cg.select(&res, &.{res_ty}, &ops, comptime &.{ .{ - .dst_constraints = .{.{ .int = .byte }}, + if (!hack_around_sema_opv_bugs or res_ty.hasRuntimeBitsIgnoreComptime(zcu)) cg.select(&res, &.{res_ty}, &ops, comptime &.{ .{ + .dst_constraints = .{ .{ .int = .byte }, .any }, .patterns = &.{ .{ .src = .{ .to_gpr, .simm32, .none } }, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .each = .{ .once = &.{ - .{ ._, ._, .movzx, .dst0d, .leaa(.src0b, .add_src0_elem_size_times_src1), ._, ._ }, + .{ ._, ._, .movzx, .dst0d, .leaa(.src0b, .add_src0_elem_size_mul_src1), ._, ._ }, } }, }, .{ - .dst_constraints = .{.{ .int = .byte }}, + .dst_constraints = .{ .{ .int = .byte }, .any }, .patterns = &.{ .{ .src = .{ .to_gpr, .to_gpr, .none } }, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .movzx, .dst0d, .leai(.src0b, .src1), ._, ._ }, } }, }, .{ - .dst_constraints = .{.{ .int = .word }}, + .dst_constraints = .{ .{ .int = .word }, .any }, .patterns = &.{ .{ .src = .{ .to_gpr, .simm32, .none } }, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .each = .{ .once = &.{ - .{ ._, ._, .movzx, .dst0d, .leaa(.src0w, .add_src0_elem_size_times_src1), ._, ._ }, + .{ ._, ._, .movzx, .dst0d, .leaa(.src0w, .add_src0_elem_size_mul_src1), ._, ._ }, } }, }, .{ - .dst_constraints = .{.{ .int = .word }}, + .dst_constraints = .{ .{ .int = .word }, .any }, .patterns = &.{ .{ .src = .{ .to_gpr, .to_gpr, .none } }, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .movzx, .dst0d, .leasi(.src0w, .@"2", .src1), ._, ._ }, } }, }, .{ - .dst_constraints = .{.{ .int = .dword }}, + .dst_constraints = .{ .{ .int = .dword }, .any }, .patterns = &.{ .{ .src = .{ .to_gpr, .simm32, .none } }, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .each = .{ .once = &.{ - .{ ._, ._, .mov, .dst0d, .leaa(.src0d, .add_src0_elem_size_times_src1), ._, ._ }, + .{ ._, ._, .mov, .dst0d, .leaa(.src0d, .add_src0_elem_size_mul_src1), ._, ._ }, } }, }, .{ - .dst_constraints = .{.{ .int = .dword }}, + .dst_constraints = .{ .{ .int = .dword }, .any }, .patterns = &.{ .{ .src = .{ .to_gpr, .to_gpr, .none } }, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .mov, .dst0d, .leasi(.src0d, .@"4", .src1), ._, ._ }, } }, }, .{ - .dst_constraints = .{.{ .int = .qword }}, + .dst_constraints = .{ .{ .int = .qword }, .any }, .patterns = &.{ .{ .src = .{ .to_gpr, .simm32, .none } }, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .each = .{ .once = &.{ - .{ ._, ._, .mov, .dst0q, .leaa(.src0q, .add_src0_elem_size_times_src1), ._, ._ }, + .{ ._, ._, .mov, .dst0q, .leaa(.src0q, .add_src0_elem_size_mul_src1), ._, ._ }, } }, }, .{ .required_features = .{ .@"64bit", null, null, null }, - .dst_constraints = .{.{ .int = .qword }}, + .dst_constraints = .{ .{ .int = .qword }, .any }, .patterns = &.{ .{ .src = .{ .to_gpr, .to_gpr, .none } }, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .mov, .dst0q, .leasi(.src0q, .@"8", .src1), ._, ._ }, } }, @@ -48809,8 +52871,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { while (true) for (&ops) |*op| { if (try op.toRegClass(true, .general_purpose, cg)) break; } else break; - const lhs_reg = ops[0].unwrap(cg).temp.tracking(cg).short.register.to64(); - const rhs_reg = ops[1].unwrap(cg).temp.tracking(cg).short.register.to64(); + const lhs_reg = ops[0].tracking(cg).short.register.to64(); + const rhs_reg = ops[1].tracking(cg).short.register.to64(); if (!std.math.isPowerOfTwo(elem_size)) { try cg.spillEflagsIfOccupied(); try cg.asmRegisterRegisterImmediate( @@ -48821,7 +52883,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { ); try cg.asmRegisterMemory(.{ ._, .lea }, lhs_reg, .{ .base = .{ .reg = lhs_reg }, - .mod = .{ .rm = .{ .size = .qword, .index = rhs_reg } }, + .mod = .{ .rm = .{ .index = rhs_reg } }, }); } else if (elem_size > 8) { try cg.spillEflagsIfOccupied(); @@ -48832,12 +52894,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { ); try cg.asmRegisterMemory(.{ ._, .lea }, lhs_reg, .{ .base = .{ .reg = lhs_reg }, - .mod = .{ .rm = .{ .size = .qword, .index = rhs_reg } }, + .mod = .{ .rm = .{ .index = rhs_reg } }, }); } else try cg.asmRegisterMemory(.{ ._, .lea }, lhs_reg, .{ .base = .{ .reg = lhs_reg }, .mod = .{ .rm = .{ - .size = .qword, .index = rhs_reg, .scale = .fromFactor(@intCast(elem_size)), } }, @@ -48845,10 +52906,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { res[0] = try ops[0].load(res_ty, .{}, cg); }, else => |e| return e, - } else { - // hack around Sema OPV bugs - res[0] = try cg.tempInit(res_ty, .none); - } + } else res[0] = try cg.tempInit(res_ty, .none); try res[0].finish(inst, &.{ bin_op.lhs, bin_op.rhs }, &ops, cg); }, .slice_elem_ptr, .ptr_elem_ptr => |air_tag| if (use_old) switch (air_tag) { @@ -48863,13 +52921,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { const dst_ty = ty_pl.ty.toType(); if (dst_ty.ptrInfo(zcu).flags.vector_index == .none) zero_offset: { const elem_size = dst_ty.childType(zcu).abiSize(zcu); - // hack around Sema OPV bugs - if (elem_size == 0) break :zero_offset; + if (hack_around_sema_opv_bugs and elem_size == 0) break :zero_offset; while (true) for (&ops) |*op| { if (try op.toRegClass(true, .general_purpose, cg)) break; } else break; - const lhs_reg = ops[0].unwrap(cg).temp.tracking(cg).short.register.to64(); - const rhs_reg = ops[1].unwrap(cg).temp.tracking(cg).short.register.to64(); + const lhs_reg = ops[0].tracking(cg).short.register.to64(); + const rhs_reg = ops[1].tracking(cg).short.register.to64(); if (!std.math.isPowerOfTwo(elem_size)) { try cg.spillEflagsIfOccupied(); try cg.asmRegisterRegisterImmediate( @@ -48880,7 +52937,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { ); try cg.asmRegisterMemory(.{ ._, .lea }, lhs_reg, .{ .base = .{ .reg = lhs_reg }, - .mod = .{ .rm = .{ .size = .qword, .index = rhs_reg } }, + .mod = .{ .rm = .{ .index = rhs_reg } }, }); } else if (elem_size > 8) { try cg.spillEflagsIfOccupied(); @@ -48891,12 +52948,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { ); try cg.asmRegisterMemory(.{ ._, .lea }, lhs_reg, .{ .base = .{ .reg = lhs_reg }, - .mod = .{ .rm = .{ .size = .qword, .index = rhs_reg } }, + .mod = .{ .rm = .{ .index = rhs_reg } }, }); } else try cg.asmRegisterMemory(.{ ._, .lea }, lhs_reg, .{ .base = .{ .reg = lhs_reg }, .mod = .{ .rm = .{ - .size = .qword, .index = rhs_reg, .scale = .fromFactor(@intCast(elem_size)), } }, @@ -48920,7 +52976,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { cg.select(&res, &.{ty_op.ty.toType()}, &ops, comptime &.{ .{ .required_features = .{ .f16c, null, null, null }, .src_constraints = .{ .{ .float = .word }, .any, .any }, - .dst_constraints = .{.{ .int = .dword }}, + .dst_constraints = .{ .{ .int = .dword }, .any }, .patterns = &.{ .{ .src = .{ .to_sse, .none, .none } }, }, @@ -48935,7 +52991,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .each = .{ .once = &.{ .{ ._, .v_ps, .cvtph2, .tmp0x, .src0q, ._, ._ }, .{ ._, .v_, .cvttss2si, .dst0d, .tmp0d, ._, ._ }, @@ -48943,7 +52999,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .f16c, null, null }, .src_constraints = .{ .{ .float = .word }, .any, .any }, - .dst_constraints = .{.{ .signed_int = .qword }}, + .dst_constraints = .{ .{ .signed_int = .qword }, .any }, .patterns = &.{ .{ .src = .{ .to_sse, .none, .none } }, }, @@ -48958,7 +53014,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .each = .{ .once = &.{ .{ ._, .v_ps, .cvtph2, .tmp0x, .src0q, ._, ._ }, .{ ._, .v_, .cvttss2si, .dst0q, .tmp0d, ._, ._ }, @@ -48966,7 +53022,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .f16c, null, null }, .src_constraints = .{ .{ .float = .word }, .any, .any }, - .dst_constraints = .{.{ .unsigned_int = .qword }}, + .dst_constraints = .{ .{ .unsigned_int = .qword }, .any }, .patterns = &.{ .{ .src = .{ .to_sse, .none, .none } }, }, @@ -48981,7 +53037,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .each = .{ .once = &.{ .{ ._, .v_ps, .cvtph2, .tmp0x, .src0q, ._, ._ }, .{ ._, .v_, .cvttss2si, .dst0d, .tmp0d, ._, ._ }, @@ -48989,7 +53045,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .f16c, null, null }, .src_constraints = .{ .{ .float = .word }, .any, .any }, - .dst_constraints = .{.{ .signed_int = .xword }}, + .dst_constraints = .{ .{ .signed_int = .xword }, .any }, .patterns = &.{ .{ .src = .{ .to_sse, .none, .none } }, }, @@ -49004,7 +53060,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, .v_ps, .cvtph2, .tmp0x, .src0q, ._, ._ }, @@ -49016,7 +53072,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .f16c, null, null }, .src_constraints = .{ .{ .float = .word }, .any, .any }, - .dst_constraints = .{.{ .unsigned_int = .xword }}, + .dst_constraints = .{ .{ .unsigned_int = .xword }, .any }, .patterns = &.{ .{ .src = .{ .to_sse, .none, .none } }, }, @@ -49031,7 +53087,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .each = .{ .once = &.{ .{ ._, .v_ps, .cvtph2, .tmp0x, .src0q, ._, ._ }, .{ ._, .v_, .cvttss2si, .tmp1q, .tmp0d, ._, ._ }, @@ -49041,7 +53097,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .f16c, null, null }, .src_constraints = .{ .{ .float = .word }, .any, .any }, - .dst_constraints = .{.{ .remainder_signed_int = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .remainder_signed_int = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_sse, .none, .none } }, }, @@ -49056,7 +53112,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, .v_ps, .cvtph2, .tmp0x, .src0q, ._, ._ }, @@ -49070,7 +53126,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .f16c, null, null }, .src_constraints = .{ .{ .float = .word }, .any, .any }, - .dst_constraints = .{.{ .remainder_unsigned_int = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .remainder_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_sse, .none, .none } }, }, @@ -49085,7 +53141,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, .v_ps, .cvtph2, .tmp0x, .src0q, ._, ._ }, @@ -49099,7 +53155,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, null, null, null }, .src_constraints = .{ .{ .float = .word }, .any, .any }, - .dst_constraints = .{.{ .signed_int = .dword }}, + .dst_constraints = .{ .{ .signed_int = .dword }, .any }, .patterns = &.{ .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, }, @@ -49115,7 +53171,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .reg = .eax }}, + .dst_temps = .{ .{ .reg = .eax }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, @@ -49123,7 +53179,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, null, null, null }, .src_constraints = .{ .{ .float = .word }, .any, .any }, - .dst_constraints = .{.{ .unsigned_int = .dword }}, + .dst_constraints = .{ .{ .unsigned_int = .dword }, .any }, .patterns = &.{ .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, }, @@ -49139,7 +53195,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .reg = .eax }}, + .dst_temps = .{ .{ .reg = .eax }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, @@ -49147,7 +53203,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse, null, null }, .src_constraints = .{ .{ .float = .word }, .any, .any }, - .dst_constraints = .{.{ .signed_int = .qword }}, + .dst_constraints = .{ .{ .signed_int = .qword }, .any }, .patterns = &.{ .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, }, @@ -49163,7 +53219,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .reg = .rax }}, + .dst_temps = .{ .{ .reg = .rax }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, @@ -49171,7 +53227,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse, null, null }, .src_constraints = .{ .{ .float = .word }, .any, .any }, - .dst_constraints = .{.{ .unsigned_int = .qword }}, + .dst_constraints = .{ .{ .unsigned_int = .qword }, .any }, .patterns = &.{ .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, }, @@ -49187,7 +53243,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .reg = .rax }}, + .dst_temps = .{ .{ .reg = .rax }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, @@ -49195,7 +53251,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse, null, null }, .src_constraints = .{ .{ .float = .word }, .any, .any }, - .dst_constraints = .{.{ .signed_int = .xword }}, + .dst_constraints = .{ .{ .signed_int = .xword }, .any }, .patterns = &.{ .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, }, @@ -49211,7 +53267,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .reg_pair = .{ .rax, .rdx } }}, + .dst_temps = .{ .{ .reg_pair = .{ .rax, .rdx } }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, @@ -49219,7 +53275,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse, null, null }, .src_constraints = .{ .{ .float = .word }, .any, .any }, - .dst_constraints = .{.{ .unsigned_int = .xword }}, + .dst_constraints = .{ .{ .unsigned_int = .xword }, .any }, .patterns = &.{ .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, }, @@ -49235,7 +53291,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .reg_pair = .{ .rax, .rdx } }}, + .dst_temps = .{ .{ .reg_pair = .{ .rax, .rdx } }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, @@ -49243,7 +53299,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse, null, null }, .src_constraints = .{ .{ .float = .word }, .any, .any }, - .dst_constraints = .{.{ .remainder_signed_int = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .remainder_signed_int = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, }, @@ -49259,7 +53315,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, @@ -49272,7 +53328,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse, null, null }, .src_constraints = .{ .{ .float = .word }, .any, .any }, - .dst_constraints = .{.{ .remainder_unsigned_int = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .remainder_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, }, @@ -49288,7 +53344,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, @@ -49301,7 +53357,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .f16c, null, null, null }, .src_constraints = .{ .{ .scalar_float = .{ .of = .qword, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .scalar_int = .{ .of = .dword, .is = .byte } }}, + .dst_constraints = .{ .{ .scalar_int = .{ .of = .dword, .is = .byte } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, @@ -49317,7 +53373,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ }, @@ -49327,7 +53383,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .f16c, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .dword, .is = .byte } }}, + .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .dword, .is = .byte } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -49342,7 +53398,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, .{ ._, .v_dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ }, @@ -49357,7 +53413,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, .slow_incdec, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }}, + .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -49373,7 +53429,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -49387,7 +53443,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }}, + .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -49403,7 +53459,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -49417,7 +53473,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse2, .slow_incdec, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }}, + .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -49433,7 +53489,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -49447,7 +53503,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }}, + .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -49463,7 +53519,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -49477,7 +53533,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, .slow_incdec, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }}, + .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -49493,7 +53549,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -49508,7 +53564,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }}, + .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -49524,7 +53580,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -49539,12 +53595,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .f16c, null, null, null }, .src_constraints = .{ .{ .scalar_float = .{ .of = .qword, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .dword, .is = .word } }}, + .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .dword, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ }, .{ ._, .v_, .cvttps2dq, .dst0x, .dst0x, ._, ._ }, @@ -49553,12 +53609,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .f16c, null, null, null }, .src_constraints = .{ .{ .scalar_float = .{ .of = .qword, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .scalar_unsigned_int = .{ .of = .qword, .is = .word } }}, + .dst_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .qword, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ }, .{ ._, .v_, .cvttps2dq, .dst0x, .dst0x, ._, ._ }, @@ -49567,7 +53623,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .f16c, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -49582,7 +53638,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, .{ .@"0:", .v_ps, .cvtph2, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, @@ -49595,7 +53651,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .f16c, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -49610,7 +53666,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, .{ .@"0:", .v_ps, .cvtph2, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, @@ -49623,7 +53679,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .word, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -49639,7 +53695,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -49653,7 +53709,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .word, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -49669,7 +53725,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -49683,7 +53739,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .word, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -49699,7 +53755,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -49714,7 +53770,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .f16c, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -49729,7 +53785,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, .{ .@"0:", .v_ps, .cvtph2, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, @@ -49741,7 +53797,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .f16c, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -49756,7 +53812,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, .{ .@"0:", .vp_, .xor, .tmp1x, .tmp1x, .tmp1x, ._ }, @@ -49770,7 +53826,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -49786,7 +53842,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -49800,7 +53856,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -49816,7 +53872,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -49830,7 +53886,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -49846,7 +53902,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -49860,7 +53916,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -49876,7 +53932,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -49890,7 +53946,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -49906,7 +53962,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -49921,7 +53977,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -49937,7 +53993,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -49952,7 +54008,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .f16c, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -49967,7 +54023,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, .{ .@"0:", .vp_, .xor, .tmp1x, .tmp1x, .tmp1x, ._ }, @@ -49981,7 +54037,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -49997,7 +54053,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -50011,7 +54067,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -50027,7 +54083,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -50041,7 +54097,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -50057,7 +54113,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -50071,7 +54127,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -50087,7 +54143,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -50101,7 +54157,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -50117,7 +54173,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -50132,7 +54188,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -50148,7 +54204,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -50163,7 +54219,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }}, + .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -50179,7 +54235,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -50194,7 +54250,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }}, + .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -50210,7 +54266,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -50225,7 +54281,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }}, + .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -50241,7 +54297,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -50256,7 +54312,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }}, + .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -50272,7 +54328,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -50287,7 +54343,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }}, + .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -50303,7 +54359,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -50319,7 +54375,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }}, + .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -50335,7 +54391,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -50351,7 +54407,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .avx, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -50367,7 +54423,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -50384,7 +54440,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .avx, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -50400,7 +54456,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -50417,7 +54473,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse2, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -50433,7 +54489,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -50450,7 +54506,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse2, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -50466,7 +54522,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -50483,7 +54539,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -50499,7 +54555,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -50517,7 +54573,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -50533,7 +54589,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -50551,55 +54607,55 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .float = .dword }, .any, .any }, - .dst_constraints = .{.{ .signed_or_exclusive_int = .dword }}, + .dst_constraints = .{ .{ .signed_or_exclusive_int = .dword }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .each = .{ .once = &.{ .{ ._, .v_, .cvttss2si, .dst0d, .src0d, ._, ._ }, } }, }, .{ .required_features = .{ .sse, null, null, null }, .src_constraints = .{ .{ .float = .dword }, .any, .any }, - .dst_constraints = .{.{ .signed_or_exclusive_int = .dword }}, + .dst_constraints = .{ .{ .signed_or_exclusive_int = .dword }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .cvttss2si, .dst0d, .src0d, ._, ._ }, } }, }, .{ .required_features = .{ .@"64bit", .avx, null, null }, .src_constraints = .{ .{ .float = .dword }, .any, .any }, - .dst_constraints = .{.{ .signed_or_exclusive_int = .qword }}, + .dst_constraints = .{ .{ .signed_or_exclusive_int = .qword }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .each = .{ .once = &.{ .{ ._, .v_, .cvttss2si, .dst0q, .src0d, ._, ._ }, } }, }, .{ .required_features = .{ .@"64bit", .sse, null, null }, .src_constraints = .{ .{ .float = .dword }, .any, .any }, - .dst_constraints = .{.{ .signed_or_exclusive_int = .qword }}, + .dst_constraints = .{ .{ .signed_or_exclusive_int = .qword }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .cvttss2si, .dst0q, .src0d, ._, ._ }, } }, }, .{ .required_features = .{ .@"64bit", .avx, null, null }, .src_constraints = .{ .{ .float = .dword }, .any, .any }, - .dst_constraints = .{.{ .exact_unsigned_int = 64 }}, + .dst_constraints = .{ .{ .exact_unsigned_int = 64 }, .any }, .patterns = &.{ .{ .src = .{ .to_sse, .none, .none } }, }, @@ -50614,7 +54670,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp1p, .mem(.tmp3), ._, ._ }, @@ -50629,7 +54685,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse, null, null }, .src_constraints = .{ .{ .float = .dword }, .any, .any }, - .dst_constraints = .{.{ .exact_unsigned_int = 64 }}, + .dst_constraints = .{ .{ .exact_unsigned_int = 64 }, .any }, .patterns = &.{ .{ .src = .{ .to_mut_sse, .none, .none } }, }, @@ -50644,7 +54700,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ }, @@ -50659,7 +54715,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse, null, null }, .src_constraints = .{ .{ .float = .dword }, .any, .any }, - .dst_constraints = .{.{ .signed_int = .xword }}, + .dst_constraints = .{ .{ .signed_int = .xword }, .any }, .patterns = &.{ .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, }, @@ -50675,7 +54731,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .reg_pair = .{ .rax, .rdx } }}, + .dst_temps = .{ .{ .reg_pair = .{ .rax, .rdx } }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, @@ -50683,7 +54739,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse, null, null }, .src_constraints = .{ .{ .float = .dword }, .any, .any }, - .dst_constraints = .{.{ .unsigned_int = .xword }}, + .dst_constraints = .{ .{ .unsigned_int = .xword }, .any }, .patterns = &.{ .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, }, @@ -50699,7 +54755,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .reg_pair = .{ .rax, .rdx } }}, + .dst_temps = .{ .{ .reg_pair = .{ .rax, .rdx } }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, @@ -50707,7 +54763,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .avx, null, null }, .src_constraints = .{ .{ .float = .dword }, .any, .any }, - .dst_constraints = .{.{ .remainder_signed_int = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .remainder_signed_int = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, }, @@ -50723,7 +54779,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, .v_d, .mov, .tmp0d, .src0x, ._, ._ }, @@ -50746,7 +54802,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse2, null, null }, .src_constraints = .{ .{ .float = .dword }, .any, .any }, - .dst_constraints = .{.{ .remainder_signed_int = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .remainder_signed_int = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, }, @@ -50762,7 +54818,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._d, .mov, .tmp0d, .src0x, ._, ._ }, @@ -50785,7 +54841,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse, null, null }, .src_constraints = .{ .{ .float = .dword }, .any, .any }, - .dst_constraints = .{.{ .remainder_signed_int = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .remainder_signed_int = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -50801,7 +54857,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._ss, .mov, .tmp0x, .src0d, ._, ._ }, @@ -50824,7 +54880,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse, null, null }, .src_constraints = .{ .{ .float = .dword }, .any, .any }, - .dst_constraints = .{.{ .remainder_unsigned_int = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .remainder_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, }, @@ -50840,7 +54896,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, @@ -50854,7 +54910,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_int = .{ .of = .dword, .is = .byte } }}, + .dst_constraints = .{ .{ .scalar_int = .{ .of = .dword, .is = .byte } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, @@ -50870,7 +54926,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, .{ ._, .v_, .cvttps2dq, .dst0x, .src0x, ._, ._ }, @@ -50879,7 +54935,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .ssse3, null, null, null }, .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_int = .{ .of = .dword, .is = .byte } }}, + .dst_constraints = .{ .{ .scalar_int = .{ .of = .dword, .is = .byte } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, @@ -50895,7 +54951,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, .{ ._, ._, .cvttps2dq, .dst0x, .src0x, ._, ._ }, @@ -50904,7 +54960,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .dword, .is = .byte } }}, + .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .dword, .is = .byte } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -50919,7 +54975,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, .{ ._, .v_dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ }, @@ -50933,7 +54989,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .ssse3, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .dword, .is = .byte } }}, + .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .dword, .is = .byte } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -50948,7 +55004,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, .{ ._, ._dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ }, @@ -50962,7 +55018,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, .slow_incdec, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }}, + .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -50977,7 +55033,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, .{ .@"0:", ._, .cvttss2si, .tmp1d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, @@ -50988,7 +55044,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }}, + .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -51003,7 +55059,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, .{ .@"0:", ._, .cvttss2si, .tmp1d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, @@ -51014,7 +55070,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, .slow_incdec, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }}, + .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -51030,7 +55086,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -51043,7 +55099,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }}, + .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -51059,7 +55115,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -51072,7 +55128,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, .slow_incdec, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }}, + .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -51088,7 +55144,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -51101,7 +55157,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }}, + .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -51117,7 +55173,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -51130,12 +55186,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .qword, .is = .word } }}, + .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .qword, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .v_, .cvttps2dq, .dst0x, .src0x, ._, ._ }, .{ ._, .vp_w, .ackssd, .dst0x, .dst0x, .dst0x, ._ }, @@ -51143,12 +55199,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .qword, .is = .word } }}, + .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .qword, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .cvttps2dq, .dst0x, .src0x, ._, ._ }, .{ ._, .p_w, .ackssd, .dst0x, .dst0x, ._, ._ }, @@ -51156,12 +55212,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_unsigned_int = .{ .of = .qword, .is = .word } }}, + .dst_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .qword, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .v_, .cvttps2dq, .dst0x, .src0x, ._, ._ }, .{ ._, .vp_w, .ackusd, .dst0x, .dst0x, .dst0x, ._ }, @@ -51169,12 +55225,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse4_1, null, null, null }, .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_unsigned_int = .{ .of = .qword, .is = .word } }}, + .dst_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .qword, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .cvttps2dq, .dst0x, .src0x, ._, ._ }, .{ ._, .p_w, .ackusd, .dst0x, .dst0x, ._, ._ }, @@ -51182,7 +55238,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -51197,7 +55253,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, .{ .@"0:", .v_, .cvttps2dq, .tmp1x, .memsia(.src0x, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, @@ -51209,7 +55265,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -51224,7 +55280,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, .{ .@"0:", ._, .cvttps2dq, .tmp1x, .memsia(.src0x, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, @@ -51236,7 +55292,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -51251,7 +55307,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, .{ .@"0:", .v_, .cvttps2dq, .tmp1x, .memsia(.src0x, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, @@ -51263,7 +55319,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse4_1, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -51278,7 +55334,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, .{ .@"0:", ._, .cvttps2dq, .tmp1x, .memsia(.src0x, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, @@ -51290,7 +55346,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .word, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -51306,7 +55362,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -51319,7 +55375,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .word, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -51335,7 +55391,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -51348,31 +55404,31 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .xword, .is = .dword } }}, + .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .v_, .cvttps2dq, .dst0x, .src0x, ._, ._ }, } }, }, .{ .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .xword, .is = .dword } }}, + .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .cvttps2dq, .dst0x, .src0x, ._, ._ }, } }, }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -51387,7 +55443,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, .{ .@"0:", .v_, .cvttps2dq, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, @@ -51398,7 +55454,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -51413,7 +55469,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, .{ .@"0:", ._, .cvttps2dq, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, @@ -51424,7 +55480,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -51440,7 +55496,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -51453,7 +55509,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -51469,7 +55525,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -51482,7 +55538,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -51498,7 +55554,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -51511,7 +55567,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -51527,7 +55583,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -51540,7 +55596,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .avx, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -51555,7 +55611,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, .{ .@"0:", .v_, .cvttss2si, .tmp1q, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, @@ -51566,7 +55622,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -51581,7 +55637,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, .{ .@"0:", ._, .cvttss2si, .tmp1q, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, @@ -51592,7 +55648,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -51608,7 +55664,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -51621,7 +55677,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -51637,7 +55693,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -51650,7 +55706,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -51666,7 +55722,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -51679,7 +55735,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -51695,7 +55751,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -51708,7 +55764,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }}, + .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -51724,7 +55780,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -51738,7 +55794,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }}, + .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -51754,7 +55810,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -51768,7 +55824,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }}, + .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -51784,7 +55840,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -51798,7 +55854,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }}, + .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -51814,7 +55870,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -51828,7 +55884,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .avx, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -51844,7 +55900,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -51860,7 +55916,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .avx, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -51876,7 +55932,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -51892,7 +55948,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -51908,7 +55964,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -51924,7 +55980,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -51940,7 +55996,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -51956,31 +56012,31 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .float = .qword }, .any, .any }, - .dst_constraints = .{.{ .signed_or_exclusive_int = .dword }}, + .dst_constraints = .{ .{ .signed_or_exclusive_int = .dword }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .each = .{ .once = &.{ .{ ._, .v_, .cvttsd2si, .dst0d, .src0q, ._, ._ }, } }, }, .{ .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ .{ .float = .qword }, .any, .any }, - .dst_constraints = .{.{ .signed_or_exclusive_int = .dword }}, + .dst_constraints = .{ .{ .signed_or_exclusive_int = .dword }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .cvttsd2si, .dst0d, .src0q, ._, ._ }, } }, }, .{ .required_features = .{ .x87, null, null, null }, .src_constraints = .{ .{ .float = .qword }, .any, .any }, - .dst_constraints = .{.{ .signed_int = .byte }}, + .dst_constraints = .{ .{ .signed_int = .byte }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -51995,7 +56051,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .each = .{ .once = &.{ .{ ._, .f_, .ld, .src0q, ._, ._, ._ }, .{ ._, .fi_p, .stt, .tmp1w, ._, ._, ._ }, @@ -52004,7 +56060,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .x87, null, null, null }, .src_constraints = .{ .{ .float = .qword }, .any, .any }, - .dst_constraints = .{.{ .unsigned_int = .byte }}, + .dst_constraints = .{ .{ .unsigned_int = .byte }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -52019,7 +56075,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .each = .{ .once = &.{ .{ ._, .f_, .ld, .src0q, ._, ._, ._ }, .{ ._, .fi_p, .stt, .tmp1w, ._, ._, ._ }, @@ -52028,7 +56084,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .x87, null, null, null }, .src_constraints = .{ .{ .float = .qword }, .any, .any }, - .dst_constraints = .{.{ .signed_or_exclusive_int = .word }}, + .dst_constraints = .{ .{ .signed_or_exclusive_int = .word }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -52043,7 +56099,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .each = .{ .once = &.{ .{ ._, .f_, .ld, .src0q, ._, ._, ._ }, .{ ._, .fi_p, .stt, .dst0w, ._, ._, ._ }, @@ -52051,7 +56107,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .x87, null, null, null }, .src_constraints = .{ .{ .float = .qword }, .any, .any }, - .dst_constraints = .{.{ .signed_or_exclusive_int = .dword }}, + .dst_constraints = .{ .{ .signed_or_exclusive_int = .dword }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -52066,7 +56122,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .each = .{ .once = &.{ .{ ._, .f_, .ld, .src0q, ._, ._, ._ }, .{ ._, .fi_p, .stt, .dst0d, ._, ._, ._ }, @@ -52074,31 +56130,31 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .avx, null, null }, .src_constraints = .{ .{ .float = .qword }, .any, .any }, - .dst_constraints = .{.{ .signed_or_exclusive_int = .qword }}, + .dst_constraints = .{ .{ .signed_or_exclusive_int = .qword }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .each = .{ .once = &.{ .{ ._, .v_, .cvttsd2si, .dst0q, .src0q, ._, ._ }, } }, }, .{ .required_features = .{ .@"64bit", .sse2, null, null }, .src_constraints = .{ .{ .float = .qword }, .any, .any }, - .dst_constraints = .{.{ .signed_or_exclusive_int = .qword }}, + .dst_constraints = .{ .{ .signed_or_exclusive_int = .qword }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .cvttsd2si, .dst0q, .src0q, ._, ._ }, } }, }, .{ .required_features = .{ .x87, null, null, null }, .src_constraints = .{ .{ .float = .qword }, .any, .any }, - .dst_constraints = .{.{ .signed_or_exclusive_int = .qword }}, + .dst_constraints = .{ .{ .signed_or_exclusive_int = .qword }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -52113,7 +56169,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .each = .{ .once = &.{ .{ ._, .f_, .ld, .src0q, ._, ._, ._ }, .{ ._, .fi_p, .stt, .dst0q, ._, ._, ._ }, @@ -52121,7 +56177,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .avx, null, null }, .src_constraints = .{ .{ .float = .qword }, .any, .any }, - .dst_constraints = .{.{ .exact_unsigned_int = 64 }}, + .dst_constraints = .{ .{ .exact_unsigned_int = 64 }, .any }, .patterns = &.{ .{ .src = .{ .to_sse, .none, .none } }, }, @@ -52136,7 +56192,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp1p, .mem(.tmp3), ._, ._ }, @@ -52151,7 +56207,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse2, null, null }, .src_constraints = .{ .{ .float = .qword }, .any, .any }, - .dst_constraints = .{.{ .exact_unsigned_int = 64 }}, + .dst_constraints = .{ .{ .exact_unsigned_int = 64 }, .any }, .patterns = &.{ .{ .src = .{ .to_mut_sse, .none, .none } }, }, @@ -52166,7 +56222,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ }, @@ -52181,7 +56237,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .x87, null, null }, .src_constraints = .{ .{ .float = .qword }, .any, .any }, - .dst_constraints = .{.{ .exact_unsigned_int = 64 }}, + .dst_constraints = .{ .{ .exact_unsigned_int = 64 }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -52196,7 +56252,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, .f_, .ld, .src0q, ._, ._, ._ }, @@ -52214,7 +56270,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse, null, null }, .src_constraints = .{ .{ .float = .qword }, .any, .any }, - .dst_constraints = .{.{ .signed_int = .xword }}, + .dst_constraints = .{ .{ .signed_int = .xword }, .any }, .patterns = &.{ .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, }, @@ -52230,7 +56286,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .reg_pair = .{ .rax, .rdx } }}, + .dst_temps = .{ .{ .reg_pair = .{ .rax, .rdx } }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, @@ -52238,7 +56294,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse, null, null }, .src_constraints = .{ .{ .float = .qword }, .any, .any }, - .dst_constraints = .{.{ .unsigned_int = .xword }}, + .dst_constraints = .{ .{ .unsigned_int = .xword }, .any }, .patterns = &.{ .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, }, @@ -52254,7 +56310,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .reg_pair = .{ .rax, .rdx } }}, + .dst_temps = .{ .{ .reg_pair = .{ .rax, .rdx } }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, @@ -52262,7 +56318,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse, null, null }, .src_constraints = .{ .{ .float = .qword }, .any, .any }, - .dst_constraints = .{.{ .remainder_signed_int = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, }, @@ -52278,7 +56334,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ }, @@ -52288,7 +56344,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse, null, null }, .src_constraints = .{ .{ .float = .qword }, .any, .any }, - .dst_constraints = .{.{ .remainder_unsigned_int = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, }, @@ -52304,7 +56360,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ }, @@ -52314,7 +56370,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_int = .{ .of = .word, .is = .byte } }}, + .dst_constraints = .{ .{ .scalar_int = .{ .of = .word, .is = .byte } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, @@ -52330,7 +56386,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, .{ ._, .v_, .cvttpd2dq, .dst0x, .src0x, ._, ._ }, @@ -52339,7 +56395,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .ssse3, null, null, null }, .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_int = .{ .of = .word, .is = .byte } }}, + .dst_constraints = .{ .{ .scalar_int = .{ .of = .word, .is = .byte } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, @@ -52355,7 +56411,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, .{ ._, ._, .cvttpd2dq, .dst0x, .src0x, ._, ._ }, @@ -52364,7 +56420,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .scalar_float = .{ .of = .yword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_int = .{ .of = .dword, .is = .byte } }}, + .dst_constraints = .{ .{ .scalar_int = .{ .of = .dword, .is = .byte } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, @@ -52380,7 +56436,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, .{ ._, .v_, .cvttpd2dq, .dst0x, .src0y, ._, ._ }, @@ -52389,7 +56445,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .yword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .dword, .is = .byte } }}, + .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .dword, .is = .byte } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -52404,7 +56460,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, @@ -52419,7 +56475,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .ssse3, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .word, .is = .byte } }}, + .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .byte } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -52434,7 +56490,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, @@ -52449,7 +56505,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse2, .slow_incdec, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }}, + .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -52464,7 +56520,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -52476,7 +56532,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }}, + .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -52491,7 +56547,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -52503,7 +56559,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .x87, .slow_incdec, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }}, + .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -52518,7 +56574,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, .{ .@"0:", .f_, .ld, .memsia(.src0q, .@"8", .tmp0, .add_unaligned_size), ._, ._, ._ }, @@ -52531,7 +56587,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .x87, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }}, + .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -52546,7 +56602,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, .{ .@"0:", .f_, .ld, .memsia(.src0q, .@"8", .tmp0, .add_unaligned_size), ._, ._, ._ }, @@ -52559,7 +56615,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, .slow_incdec, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }}, + .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -52575,7 +56631,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -52588,7 +56644,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }}, + .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -52604,7 +56660,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -52617,7 +56673,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse2, .slow_incdec, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }}, + .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -52633,7 +56689,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -52646,7 +56702,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }}, + .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -52662,7 +56718,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -52675,7 +56731,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, .slow_incdec, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }}, + .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -52691,7 +56747,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -52705,7 +56761,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }}, + .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -52721,7 +56777,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -52735,12 +56791,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .dword, .is = .word } }}, + .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .dword, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .v_, .cvttpd2dq, .dst0x, .src0x, ._, ._ }, .{ ._, .vp_w, .ackssd, .dst0x, .dst0x, .dst0x, ._ }, @@ -52748,12 +56804,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .dword, .is = .word } }}, + .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .dword, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .cvttpd2dq, .dst0x, .src0x, ._, ._ }, .{ ._, .p_w, .ackssd, .dst0x, .dst0x, ._, ._ }, @@ -52761,12 +56817,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .scalar_float = .{ .of = .yword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .qword, .is = .word } }}, + .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .qword, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .v_, .cvttpd2dq, .dst0x, .src0y, ._, ._ }, .{ ._, .vp_w, .ackssd, .dst0x, .dst0x, .dst0x, ._ }, @@ -52774,12 +56830,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_unsigned_int = .{ .of = .dword, .is = .word } }}, + .dst_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .dword, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .v_, .cvttpd2dq, .dst0x, .src0x, ._, ._ }, .{ ._, .vp_w, .ackusd, .dst0x, .dst0x, .dst0x, ._ }, @@ -52787,12 +56843,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse4_1, null, null, null }, .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_unsigned_int = .{ .of = .dword, .is = .word } }}, + .dst_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .dword, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .cvttpd2dq, .dst0x, .src0x, ._, ._ }, .{ ._, .p_w, .ackusd, .dst0x, .dst0x, ._, ._ }, @@ -52800,12 +56856,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .scalar_float = .{ .of = .yword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_unsigned_int = .{ .of = .qword, .is = .word } }}, + .dst_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .qword, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .v_, .cvttpd2dq, .dst0x, .src0y, ._, ._ }, .{ ._, .vp_w, .ackusd, .dst0x, .dst0x, .dst0x, ._ }, @@ -52813,7 +56869,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .yword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -52828,7 +56884,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -52841,7 +56897,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -52856,7 +56912,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -52869,7 +56925,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .yword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -52884,7 +56940,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -52897,7 +56953,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse4_1, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -52912,7 +56968,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -52925,7 +56981,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .word, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -52940,7 +56996,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -52952,7 +57008,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .x87, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -52967,7 +57023,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, .{ .@"0:", .f_, .ld, .memsia(.src0q, .@"4", .tmp0, .add_unaligned_size), ._, ._, ._ }, @@ -52978,7 +57034,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .x87, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -52993,7 +57049,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, .{ .@"0:", .f_, .ld, .memsia(.src0q, .@"4", .tmp0, .add_unaligned_size), ._, ._, ._ }, @@ -53006,7 +57062,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .word, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -53022,7 +57078,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -53035,7 +57091,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .word, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -53051,7 +57107,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -53064,7 +57120,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .word, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -53080,7 +57136,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -53094,43 +57150,43 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .qword, .is = .dword } }}, + .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .qword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .v_, .cvttpd2dq, .dst0x, .src0x, ._, ._ }, } }, }, .{ .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .qword, .is = .dword } }}, + .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .qword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .cvttpd2dq, .dst0x, .src0x, ._, ._ }, } }, }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .scalar_float = .{ .of = .yword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .xword, .is = .dword } }}, + .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .v_, .cvttpd2dq, .dst0x, .src0y, ._, ._ }, } }, }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .yword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -53145,7 +57201,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -53157,7 +57213,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -53172,7 +57228,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -53184,7 +57240,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .x87, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -53199,7 +57255,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, .{ .@"0:", .f_, .ld, .memsia(.src0q, .@"2", .tmp0, .add_unaligned_size), ._, ._, ._ }, @@ -53210,7 +57266,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .x87, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -53225,7 +57281,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, .{ .@"0:", .f_, .ld, .memsia(.src0q, .@"2", .tmp0, .add_unaligned_size), ._, ._, ._ }, @@ -53238,7 +57294,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -53254,7 +57310,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -53267,7 +57323,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -53283,7 +57339,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -53296,7 +57352,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -53312,7 +57368,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -53325,7 +57381,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -53341,7 +57397,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -53354,7 +57410,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -53370,7 +57426,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -53384,7 +57440,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -53400,7 +57456,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -53414,7 +57470,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .avx, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -53429,7 +57485,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -53441,7 +57497,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse2, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -53456,7 +57512,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -53468,7 +57524,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .x87, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -53483,7 +57539,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, .{ .@"0:", .f_, .ld, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._, ._ }, @@ -53494,7 +57550,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -53510,7 +57566,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -53523,7 +57579,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -53539,7 +57595,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -53552,7 +57608,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -53568,7 +57624,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -53581,7 +57637,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -53597,7 +57653,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -53610,7 +57666,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -53626,7 +57682,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -53640,7 +57696,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -53656,7 +57712,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -53670,7 +57726,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }}, + .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -53686,7 +57742,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -53700,7 +57756,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }}, + .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -53716,7 +57772,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -53730,7 +57786,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }}, + .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -53746,7 +57802,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -53760,7 +57816,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }}, + .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -53776,7 +57832,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -53790,7 +57846,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }}, + .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -53806,7 +57862,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -53821,7 +57877,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }}, + .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -53837,7 +57893,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -53852,7 +57908,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .avx, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -53868,7 +57924,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -53884,7 +57940,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .avx, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -53900,7 +57956,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -53916,7 +57972,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse2, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -53932,7 +57988,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -53948,7 +58004,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse2, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -53964,7 +58020,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -53980,7 +58036,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -53996,7 +58052,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -54013,7 +58069,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -54029,7 +58085,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -54046,7 +58102,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .x87, null, null, null }, .src_constraints = .{ .{ .float = .tbyte }, .any, .any }, - .dst_constraints = .{.{ .signed_int = .byte }}, + .dst_constraints = .{ .{ .signed_int = .byte }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_x87, .none, .none } }, @@ -54062,7 +58118,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .each = .{ .once = &.{ .{ ._, .f_, .ld, .src0t, ._, ._, ._ }, .{ ._, .fi_p, .stt, .tmp1w, ._, ._, ._ }, @@ -54071,7 +58127,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .x87, null, null, null }, .src_constraints = .{ .{ .float = .tbyte }, .any, .any }, - .dst_constraints = .{.{ .unsigned_int = .byte }}, + .dst_constraints = .{ .{ .unsigned_int = .byte }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_x87, .none, .none } }, @@ -54087,7 +58143,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .each = .{ .once = &.{ .{ ._, .f_, .ld, .src0t, ._, ._, ._ }, .{ ._, .fi_p, .stt, .tmp1w, ._, ._, ._ }, @@ -54096,7 +58152,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .x87, .slow_incdec, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }}, + .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -54111,7 +58167,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, @@ -54127,7 +58183,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .x87, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }}, + .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -54142,7 +58198,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, @@ -54158,7 +58214,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .x87, .slow_incdec, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }}, + .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -54173,7 +58229,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, @@ -54189,7 +58245,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .x87, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }}, + .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -54204,7 +58260,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, @@ -54220,7 +58276,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .x87, null, null, null }, .src_constraints = .{ .{ .float = .tbyte }, .any, .any }, - .dst_constraints = .{.{ .signed_or_exclusive_int = .word }}, + .dst_constraints = .{ .{ .signed_or_exclusive_int = .word }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_x87, .none, .none } }, @@ -54236,7 +58292,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .each = .{ .once = &.{ .{ ._, .f_, .ld, .src0t, ._, ._, ._ }, .{ ._, .fi_p, .stt, .dst0w, ._, ._, ._ }, @@ -54244,7 +58300,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .x87, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -54259,7 +58315,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -54271,7 +58327,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .x87, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -54286,7 +58342,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -54300,7 +58356,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .x87, null, null, null }, .src_constraints = .{ .{ .float = .tbyte }, .any, .any }, - .dst_constraints = .{.{ .signed_or_exclusive_int = .dword }}, + .dst_constraints = .{ .{ .signed_or_exclusive_int = .dword }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_x87, .none, .none } }, @@ -54316,7 +58372,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .each = .{ .once = &.{ .{ ._, .f_, .ld, .src0t, ._, ._, ._ }, .{ ._, .fi_p, .stt, .dst0d, ._, ._, ._ }, @@ -54324,7 +58380,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .x87, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -54339,7 +58395,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -54351,7 +58407,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .x87, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -54366,7 +58422,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -54380,7 +58436,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .x87, null, null, null }, .src_constraints = .{ .{ .float = .tbyte }, .any, .any }, - .dst_constraints = .{.{ .signed_or_exclusive_int = .qword }}, + .dst_constraints = .{ .{ .signed_or_exclusive_int = .qword }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_x87, .none, .none } }, @@ -54396,7 +58452,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .each = .{ .once = &.{ .{ ._, .f_, .ld, .src0t, ._, ._, ._ }, .{ ._, .fi_p, .stt, .dst0q, ._, ._, ._ }, @@ -54404,7 +58460,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .x87, null, null }, .src_constraints = .{ .{ .float = .tbyte }, .any, .any }, - .dst_constraints = .{.{ .exact_unsigned_int = 64 }}, + .dst_constraints = .{ .{ .exact_unsigned_int = 64 }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_x87, .none, .none } }, @@ -54420,7 +58476,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .general_purpose }}, + .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, .f_, .ld, .src0t, ._, ._, ._ }, @@ -54438,7 +58494,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .x87, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -54453,7 +58509,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -54465,7 +58521,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .avx, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -54481,7 +58537,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -54495,7 +58551,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse2, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -54511,7 +58567,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -54525,7 +58581,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -54541,7 +58597,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -54555,7 +58611,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .avx, null, null }, .src_constraints = .{ .{ .float = .tbyte }, .any, .any }, - .dst_constraints = .{.{ .signed_int = .xword }}, + .dst_constraints = .{ .{ .signed_int = .xword }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -54571,7 +58627,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .reg_pair = .{ .rax, .rdx } }}, + .dst_temps = .{ .{ .reg_pair = .{ .rax, .rdx } }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, .v_dqa, .mov, .tmp0x, .src0x, ._, ._ }, @@ -54581,7 +58637,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .avx, null, null }, .src_constraints = .{ .{ .float = .tbyte }, .any, .any }, - .dst_constraints = .{.{ .unsigned_int = .xword }}, + .dst_constraints = .{ .{ .unsigned_int = .xword }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -54597,7 +58653,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .reg_pair = .{ .rax, .rdx } }}, + .dst_temps = .{ .{ .reg_pair = .{ .rax, .rdx } }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, .v_dqa, .mov, .tmp0x, .src0x, ._, ._ }, @@ -54607,7 +58663,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse2, null, null }, .src_constraints = .{ .{ .float = .tbyte }, .any, .any }, - .dst_constraints = .{.{ .signed_int = .xword }}, + .dst_constraints = .{ .{ .signed_int = .xword }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -54623,7 +58679,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .reg_pair = .{ .rax, .rdx } }}, + .dst_temps = .{ .{ .reg_pair = .{ .rax, .rdx } }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._dqa, .mov, .tmp0x, .src0x, ._, ._ }, @@ -54633,7 +58689,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse2, null, null }, .src_constraints = .{ .{ .float = .tbyte }, .any, .any }, - .dst_constraints = .{.{ .unsigned_int = .xword }}, + .dst_constraints = .{ .{ .unsigned_int = .xword }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -54649,7 +58705,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .reg_pair = .{ .rax, .rdx } }}, + .dst_temps = .{ .{ .reg_pair = .{ .rax, .rdx } }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._dqa, .mov, .tmp0x, .src0x, ._, ._ }, @@ -54659,7 +58715,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse, null, null }, .src_constraints = .{ .{ .float = .tbyte }, .any, .any }, - .dst_constraints = .{.{ .signed_int = .xword }}, + .dst_constraints = .{ .{ .signed_int = .xword }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -54675,7 +58731,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .reg_pair = .{ .rax, .rdx } }}, + .dst_temps = .{ .{ .reg_pair = .{ .rax, .rdx } }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._ps, .mova, .tmp0x, .src0x, ._, ._ }, @@ -54685,7 +58741,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse, null, null }, .src_constraints = .{ .{ .float = .tbyte }, .any, .any }, - .dst_constraints = .{.{ .unsigned_int = .xword }}, + .dst_constraints = .{ .{ .unsigned_int = .xword }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -54701,7 +58757,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .reg_pair = .{ .rax, .rdx } }}, + .dst_temps = .{ .{ .reg_pair = .{ .rax, .rdx } }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._ps, .mova, .tmp0x, .src0x, ._, ._ }, @@ -54711,7 +58767,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .avx, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }}, + .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -54727,7 +58783,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -54742,7 +58798,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .avx, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }}, + .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -54758,7 +58814,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -54773,7 +58829,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse2, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }}, + .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -54789,7 +58845,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -54804,7 +58860,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse2, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }}, + .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -54820,7 +58876,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -54835,7 +58891,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }}, + .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -54851,7 +58907,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -54866,7 +58922,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }}, + .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -54882,7 +58938,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -54897,7 +58953,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .avx, null, null }, .src_constraints = .{ .{ .float = .tbyte }, .any, .any }, - .dst_constraints = .{.{ .remainder_signed_int = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -54913,7 +58969,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ }, @@ -54925,7 +58981,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .avx, null, null }, .src_constraints = .{ .{ .float = .tbyte }, .any, .any }, - .dst_constraints = .{.{ .remainder_unsigned_int = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -54941,7 +58997,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ }, @@ -54953,7 +59009,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse2, null, null }, .src_constraints = .{ .{ .float = .tbyte }, .any, .any }, - .dst_constraints = .{.{ .remainder_signed_int = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -54969,7 +59025,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ }, @@ -54981,7 +59037,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse2, null, null }, .src_constraints = .{ .{ .float = .tbyte }, .any, .any }, - .dst_constraints = .{.{ .remainder_unsigned_int = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -54997,7 +59053,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ }, @@ -55009,7 +59065,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse, null, null }, .src_constraints = .{ .{ .float = .tbyte }, .any, .any }, - .dst_constraints = .{.{ .remainder_signed_int = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -55025,7 +59081,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ }, @@ -55037,7 +59093,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse, null, null }, .src_constraints = .{ .{ .float = .tbyte }, .any, .any }, - .dst_constraints = .{.{ .remainder_unsigned_int = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -55053,7 +59109,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ }, @@ -55065,7 +59121,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .avx, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, - .dst_constraints = .{.{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -55081,7 +59137,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -55098,7 +59154,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .avx, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, - .dst_constraints = .{.{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -55114,7 +59170,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -55131,7 +59187,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse2, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, - .dst_constraints = .{.{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -55147,7 +59203,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -55164,7 +59220,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse2, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, - .dst_constraints = .{.{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -55180,7 +59236,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -55197,7 +59253,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, - .dst_constraints = .{.{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -55213,7 +59269,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -55230,7 +59286,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, - .dst_constraints = .{.{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -55246,7 +59302,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -55263,7 +59319,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, .slow_incdec, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }}, + .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -55279,7 +59335,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, @@ -55294,7 +59350,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }}, + .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -55310,7 +59366,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, @@ -55325,7 +59381,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse2, .slow_incdec, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }}, + .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -55341,7 +59397,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, @@ -55356,7 +59412,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }}, + .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -55372,7 +59428,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, @@ -55387,7 +59443,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, .slow_incdec, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }}, + .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -55403,7 +59459,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, @@ -55418,7 +59474,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }}, + .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -55434,7 +59490,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, @@ -55449,7 +59505,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .word, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -55465,7 +59521,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -55478,7 +59534,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .word, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -55494,7 +59550,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -55507,7 +59563,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .word, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -55523,7 +59579,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -55536,7 +59592,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, null, null, null }, .src_constraints = .{ .{ .float = .xword }, .any, .any }, - .dst_constraints = .{.{ .signed_int = .dword }}, + .dst_constraints = .{ .{ .signed_int = .dword }, .any }, .patterns = &.{ .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, }, @@ -55552,7 +59608,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .reg = .eax }}, + .dst_temps = .{ .{ .reg = .eax }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, @@ -55560,7 +59616,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, null, null, null }, .src_constraints = .{ .{ .float = .xword }, .any, .any }, - .dst_constraints = .{.{ .unsigned_int = .dword }}, + .dst_constraints = .{ .{ .unsigned_int = .dword }, .any }, .patterns = &.{ .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, }, @@ -55576,7 +59632,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .reg = .eax }}, + .dst_temps = .{ .{ .reg = .eax }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, @@ -55584,7 +59640,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -55600,7 +59656,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -55613,7 +59669,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -55629,7 +59685,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -55642,7 +59698,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -55658,7 +59714,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -55671,7 +59727,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -55687,7 +59743,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -55700,7 +59756,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -55716,7 +59772,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -55729,7 +59785,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -55745,7 +59801,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -55758,7 +59814,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse, null, null }, .src_constraints = .{ .{ .float = .xword }, .any, .any }, - .dst_constraints = .{.{ .signed_int = .qword }}, + .dst_constraints = .{ .{ .signed_int = .qword }, .any }, .patterns = &.{ .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, }, @@ -55774,7 +59830,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .reg = .rax }}, + .dst_temps = .{ .{ .reg = .rax }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, @@ -55782,7 +59838,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse, null, null }, .src_constraints = .{ .{ .float = .xword }, .any, .any }, - .dst_constraints = .{.{ .unsigned_int = .qword }}, + .dst_constraints = .{ .{ .unsigned_int = .qword }, .any }, .patterns = &.{ .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, }, @@ -55798,7 +59854,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .reg = .rax }}, + .dst_temps = .{ .{ .reg = .rax }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, @@ -55806,7 +59862,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .avx, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -55822,7 +59878,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -55835,7 +59891,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .avx, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -55851,7 +59907,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -55864,7 +59920,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse2, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -55880,7 +59936,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -55893,7 +59949,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse2, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -55909,7 +59965,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -55922,7 +59978,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -55938,7 +59994,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -55951,7 +60007,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -55967,7 +60023,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -55980,7 +60036,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse, null, null }, .src_constraints = .{ .{ .float = .xword }, .any, .any }, - .dst_constraints = .{.{ .signed_int = .xword }}, + .dst_constraints = .{ .{ .signed_int = .xword }, .any }, .patterns = &.{ .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, }, @@ -55996,7 +60052,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .reg_pair = .{ .rax, .rdx } }}, + .dst_temps = .{ .{ .reg_pair = .{ .rax, .rdx } }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, @@ -56004,7 +60060,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse, null, null }, .src_constraints = .{ .{ .float = .xword }, .any, .any }, - .dst_constraints = .{.{ .unsigned_int = .xword }}, + .dst_constraints = .{ .{ .unsigned_int = .xword }, .any }, .patterns = &.{ .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, }, @@ -56020,7 +60076,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .reg_pair = .{ .rax, .rdx } }}, + .dst_temps = .{ .{ .reg_pair = .{ .rax, .rdx } }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, @@ -56028,7 +60084,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .avx, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }}, + .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -56044,7 +60100,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -56058,7 +60114,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .avx, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }}, + .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -56074,7 +60130,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -56088,7 +60144,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse2, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }}, + .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -56104,7 +60160,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -56118,7 +60174,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse2, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }}, + .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -56134,7 +60190,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -56148,7 +60204,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }}, + .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -56164,7 +60220,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -56178,7 +60234,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }}, + .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -56194,7 +60250,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -56208,7 +60264,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse, null, null }, .src_constraints = .{ .{ .float = .xword }, .any, .any }, - .dst_constraints = .{.{ .remainder_signed_int = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, }, @@ -56224,7 +60280,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ }, @@ -56234,7 +60290,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse, null, null }, .src_constraints = .{ .{ .float = .xword }, .any, .any }, - .dst_constraints = .{.{ .remainder_unsigned_int = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, }, @@ -56250,7 +60306,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ }, @@ -56260,7 +60316,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .avx, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -56276,7 +60332,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -56292,7 +60348,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .avx, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -56308,7 +60364,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -56324,7 +60380,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse2, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -56340,7 +60396,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -56356,7 +60412,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse2, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -56372,7 +60428,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -56388,7 +60444,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -56404,7 +60460,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -56420,7 +60476,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse, null, null }, .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -56436,7 +60492,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -56467,7 +60523,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { cg.select(&res, &.{ty_op.ty.toType()}, &ops, comptime &.{ .{ .required_features = .{ .f16c, null, null, null }, .src_constraints = .{ .{ .signed_int = .byte }, .any, .any }, - .dst_constraints = .{.{ .float = .word }}, + .dst_constraints = .{ .{ .float = .word }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_gpr, .none, .none } }, @@ -56483,7 +60539,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .sse }}, + .dst_temps = .{ .{ .rc = .sse }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .movsx, .tmp0d, .src0b, ._, ._ }, .{ ._, .v_ps, .xor, .dst0x, .dst0x, .dst0x, ._ }, @@ -56493,7 +60549,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .f16c, null, null, null }, .src_constraints = .{ .{ .unsigned_int = .byte }, .any, .any }, - .dst_constraints = .{.{ .float = .word }}, + .dst_constraints = .{ .{ .float = .word }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_gpr, .none, .none } }, @@ -56509,7 +60565,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .sse }}, + .dst_temps = .{ .{ .rc = .sse }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .movzx, .tmp0d, .src0b, ._, ._ }, .{ ._, .v_ps, .xor, .dst0x, .dst0x, .dst0x, ._ }, @@ -56519,7 +60575,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .f16c, null, null, null }, .src_constraints = .{ .{ .signed_int = .word }, .any, .any }, - .dst_constraints = .{.{ .float = .word }}, + .dst_constraints = .{ .{ .float = .word }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_gpr, .none, .none } }, @@ -56535,7 +60591,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .sse }}, + .dst_temps = .{ .{ .rc = .sse }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .movsx, .tmp0d, .src0w, ._, ._ }, .{ ._, .v_ps, .xor, .dst0x, .dst0x, .dst0x, ._ }, @@ -56545,7 +60601,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .f16c, null, null, null }, .src_constraints = .{ .{ .unsigned_int = .word }, .any, .any }, - .dst_constraints = .{.{ .float = .word }}, + .dst_constraints = .{ .{ .float = .word }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_gpr, .none, .none } }, @@ -56561,7 +60617,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .sse }}, + .dst_temps = .{ .{ .rc = .sse }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .movzx, .tmp0d, .src0w, ._, ._ }, .{ ._, .v_ps, .xor, .dst0x, .dst0x, .dst0x, ._ }, @@ -56571,12 +60627,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .f16c, null, null, null }, .src_constraints = .{ .{ .signed_or_exclusive_int = .dword }, .any, .any }, - .dst_constraints = .{.{ .float = .word }}, + .dst_constraints = .{ .{ .float = .word }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_gpr, .none, .none } }, }, - .dst_temps = .{.{ .rc = .sse }}, + .dst_temps = .{ .{ .rc = .sse }, .unused }, .each = .{ .once = &.{ .{ ._, .v_ps, .xor, .dst0x, .dst0x, .dst0x, ._ }, .{ ._, .v_ss, .cvtsi2, .dst0x, .dst0x, .src0d, ._ }, @@ -56585,7 +60641,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .f16c, null, null }, .src_constraints = .{ .{ .exact_unsigned_int = 32 }, .any, .any }, - .dst_constraints = .{.{ .float = .word }}, + .dst_constraints = .{ .{ .float = .word }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_gpr, .none, .none } }, @@ -56601,7 +60657,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .sse }}, + .dst_temps = .{ .{ .rc = .sse }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ }, .{ ._, .v_ps, .xor, .dst0x, .dst0x, .dst0x, ._ }, @@ -56611,12 +60667,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .f16c, null, null }, .src_constraints = .{ .{ .signed_or_exclusive_int = .qword }, .any, .any }, - .dst_constraints = .{.{ .float = .word }}, + .dst_constraints = .{ .{ .float = .word }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_gpr, .none, .none } }, }, - .dst_temps = .{.{ .rc = .sse }}, + .dst_temps = .{ .{ .rc = .sse }, .unused }, .each = .{ .once = &.{ .{ ._, .v_ps, .xor, .dst0x, .dst0x, .dst0x, ._ }, .{ ._, .v_ss, .cvtsi2, .dst0x, .dst0x, .src0q, ._ }, @@ -56625,7 +60681,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .f16c, null, null }, .src_constraints = .{ .{ .exact_unsigned_int = 64 }, .any, .any }, - .dst_constraints = .{.{ .float = .word }}, + .dst_constraints = .{ .{ .float = .word }, .any }, .patterns = &.{ .{ .src = .{ .to_mut_gpr, .none, .none } }, }, @@ -56640,7 +60696,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .sse }}, + .dst_temps = .{ .{ .rc = .sse }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, .v_ps, .xor, .dst0x, .dst0x, .dst0x, ._ }, @@ -56659,7 +60715,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, null, null, null }, .src_constraints = .{ .{ .signed_int = .byte }, .any, .any }, - .dst_constraints = .{.{ .float = .word }}, + .dst_constraints = .{ .{ .float = .word }, .any }, .patterns = &.{ .{ .src = .{ .{ .to_reg = .dil }, .none, .none } }, }, @@ -56675,7 +60731,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .reg = .xmm0 }}, + .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .movsx, .src0d, .src0b, ._, ._ }, @@ -56684,7 +60740,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, null, null, null }, .src_constraints = .{ .{ .unsigned_int = .byte }, .any, .any }, - .dst_constraints = .{.{ .float = .word }}, + .dst_constraints = .{ .{ .float = .word }, .any }, .patterns = &.{ .{ .src = .{ .{ .to_reg = .dil }, .none, .none } }, }, @@ -56700,7 +60756,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .reg = .xmm0 }}, + .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .movzx, .src0d, .src0b, ._, ._ }, @@ -56709,7 +60765,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, null, null, null }, .src_constraints = .{ .{ .signed_int = .word }, .any, .any }, - .dst_constraints = .{.{ .float = .word }}, + .dst_constraints = .{ .{ .float = .word }, .any }, .patterns = &.{ .{ .src = .{ .{ .to_reg = .di }, .none, .none } }, }, @@ -56725,7 +60781,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .reg = .xmm0 }}, + .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .movsx, .src0d, .src0w, ._, ._ }, @@ -56734,7 +60790,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, null, null, null }, .src_constraints = .{ .{ .unsigned_int = .word }, .any, .any }, - .dst_constraints = .{.{ .float = .word }}, + .dst_constraints = .{ .{ .float = .word }, .any }, .patterns = &.{ .{ .src = .{ .{ .to_reg = .di }, .none, .none } }, }, @@ -56750,7 +60806,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .reg = .xmm0 }}, + .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .movzx, .src0d, .src0w, ._, ._ }, @@ -56759,7 +60815,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, null, null, null }, .src_constraints = .{ .{ .signed_int = .dword }, .any, .any }, - .dst_constraints = .{.{ .float = .word }}, + .dst_constraints = .{ .{ .float = .word }, .any }, .patterns = &.{ .{ .src = .{ .{ .to_reg = .edi }, .none, .none } }, }, @@ -56775,7 +60831,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .reg = .xmm0 }}, + .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, @@ -56783,7 +60839,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, null, null, null }, .src_constraints = .{ .{ .unsigned_int = .dword }, .any, .any }, - .dst_constraints = .{.{ .float = .word }}, + .dst_constraints = .{ .{ .float = .word }, .any }, .patterns = &.{ .{ .src = .{ .{ .to_reg = .edi }, .none, .none } }, }, @@ -56799,7 +60855,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .reg = .xmm0 }}, + .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, @@ -56807,7 +60863,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse, null, null }, .src_constraints = .{ .{ .signed_int = .qword }, .any, .any }, - .dst_constraints = .{.{ .float = .word }}, + .dst_constraints = .{ .{ .float = .word }, .any }, .patterns = &.{ .{ .src = .{ .{ .to_reg = .rdi }, .none, .none } }, }, @@ -56823,7 +60879,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .reg = .xmm0 }}, + .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, @@ -56831,7 +60887,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse, null, null }, .src_constraints = .{ .{ .unsigned_int = .qword }, .any, .any }, - .dst_constraints = .{.{ .float = .word }}, + .dst_constraints = .{ .{ .float = .word }, .any }, .patterns = &.{ .{ .src = .{ .{ .to_reg = .rdi }, .none, .none } }, }, @@ -56847,7 +60903,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .reg = .xmm0 }}, + .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, @@ -56855,7 +60911,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse, null, null }, .src_constraints = .{ .{ .signed_int = .xword }, .any, .any }, - .dst_constraints = .{.{ .float = .word }}, + .dst_constraints = .{ .{ .float = .word }, .any }, .patterns = &.{ .{ .src = .{ .{ .to_reg_pair = .{ .rdi, .rsi } }, .none, .none } }, }, @@ -56871,7 +60927,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .reg = .xmm0 }}, + .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, @@ -56879,7 +60935,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse, null, null }, .src_constraints = .{ .{ .unsigned_int = .xword }, .any, .any }, - .dst_constraints = .{.{ .float = .word }}, + .dst_constraints = .{ .{ .float = .word }, .any }, .patterns = &.{ .{ .src = .{ .{ .to_reg_pair = .{ .rdi, .rsi } }, .none, .none } }, }, @@ -56895,7 +60951,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .reg = .xmm0 }}, + .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, @@ -56903,7 +60959,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse, null, null }, .src_constraints = .{ .{ .remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .float = .word }}, + .dst_constraints = .{ .{ .float = .word }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -56919,7 +60975,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .reg = .xmm0 }}, + .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, @@ -56929,7 +60985,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse, null, null }, .src_constraints = .{ .{ .remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .float = .word }}, + .dst_constraints = .{ .{ .float = .word }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -56945,7 +61001,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .reg = .xmm0 }}, + .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, @@ -56955,12 +61011,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .f16c, null, null, null }, .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .dword, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .scalar_float = .{ .of = .qword, .is = .word } }}, + .dst_constraints = .{ .{ .scalar_float = .{ .of = .qword, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .vp_d, .movsxb, .dst0x, .src0d, ._, ._ }, .{ ._, .v_ps, .cvtdq2, .dst0x, .dst0x, ._, ._ }, @@ -56969,12 +61025,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .f16c, .avx2, null, null }, .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .qword, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .scalar_float = .{ .of = .xword, .is = .word } }}, + .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .vp_d, .movsxb, .dst0y, .src0q, ._, ._ }, .{ ._, .v_ps, .cvtdq2, .dst0y, .dst0y, ._, ._ }, @@ -56983,12 +61039,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .f16c, null, null, null }, .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .dword, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .scalar_float = .{ .of = .qword, .is = .word } }}, + .dst_constraints = .{ .{ .scalar_float = .{ .of = .qword, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .vp_d, .movzxb, .dst0x, .src0d, ._, ._ }, .{ ._, .v_ps, .cvtdq2, .dst0x, .dst0x, ._, ._ }, @@ -56997,12 +61053,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .f16c, .avx2, null, null }, .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .qword, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .scalar_float = .{ .of = .xword, .is = .word } }}, + .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .vp_d, .movzxb, .dst0y, .src0q, ._, ._ }, .{ ._, .v_ps, .cvtdq2, .dst0y, .dst0y, ._, ._ }, @@ -57011,7 +61067,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .f16c, .avx2, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -57026,7 +61082,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -57039,7 +61095,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .f16c, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .qword, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -57054,7 +61110,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -57067,7 +61123,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .f16c, .avx2, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -57082,7 +61138,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -57095,7 +61151,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .f16c, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .qword, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -57110,7 +61166,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -57123,7 +61179,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, .slow_incdec, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .word, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -57139,7 +61195,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -57152,7 +61208,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .word, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -57168,7 +61224,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -57181,7 +61237,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse4_1, .slow_incdec, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .word, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -57197,7 +61253,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -57210,7 +61266,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse4_1, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .word, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -57226,7 +61282,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -57239,7 +61295,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse2, .slow_incdec, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .word, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -57255,7 +61311,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -57269,7 +61325,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .word, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -57285,7 +61341,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -57299,7 +61355,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, .slow_incdec, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .word, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -57315,7 +61371,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -57330,7 +61386,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .word, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -57346,7 +61402,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -57361,7 +61417,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, .slow_incdec, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .word, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -57377,7 +61433,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -57390,7 +61446,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .word, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -57406,7 +61462,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -57419,7 +61475,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse4_1, .slow_incdec, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .word, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -57435,7 +61491,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -57448,7 +61504,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse4_1, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .word, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -57464,7 +61520,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -57477,7 +61533,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse2, .slow_incdec, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .word, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -57493,7 +61549,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -57507,7 +61563,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .word, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -57523,7 +61579,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -57537,7 +61593,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, .slow_incdec, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .word, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -57553,7 +61609,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -57568,7 +61624,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .word, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -57584,7 +61640,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -57599,12 +61655,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .f16c, null, null, null }, .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .qword, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .scalar_float = .{ .of = .qword, .is = .word } }}, + .dst_constraints = .{ .{ .scalar_float = .{ .of = .qword, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .vp_d, .movsxw, .dst0x, .src0q, ._, ._ }, .{ ._, .v_ps, .cvtdq2, .dst0x, .dst0x, ._, ._ }, @@ -57613,12 +61669,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .f16c, .avx2, null, null }, .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .scalar_float = .{ .of = .xword, .is = .word } }}, + .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .vp_d, .movsxw, .dst0y, .src0x, ._, ._ }, .{ ._, .v_ps, .cvtdq2, .dst0y, .dst0y, ._, ._ }, @@ -57627,12 +61683,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .f16c, null, null, null }, .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .qword, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .scalar_float = .{ .of = .qword, .is = .word } }}, + .dst_constraints = .{ .{ .scalar_float = .{ .of = .qword, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .vp_d, .movzxw, .dst0x, .src0q, ._, ._ }, .{ ._, .v_ps, .cvtdq2, .dst0x, .dst0x, ._, ._ }, @@ -57641,12 +61697,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .f16c, .avx2, null, null }, .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .scalar_float = .{ .of = .xword, .is = .word } }}, + .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .vp_d, .movzxw, .dst0y, .src0x, ._, ._ }, .{ ._, .v_ps, .cvtdq2, .dst0y, .dst0y, ._, ._ }, @@ -57655,7 +61711,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .f16c, .avx2, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -57670,7 +61726,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -57683,7 +61739,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .f16c, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .qword, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -57698,7 +61754,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -57711,7 +61767,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .f16c, .avx2, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -57726,7 +61782,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -57739,7 +61795,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .f16c, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .qword, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -57754,7 +61810,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -57767,7 +61823,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .word, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -57783,7 +61839,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -57796,7 +61852,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse4_1, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .word, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -57812,7 +61868,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -57825,7 +61881,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .word, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -57841,7 +61897,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -57855,7 +61911,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .word, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -57871,7 +61927,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -57886,7 +61942,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .word, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -57902,7 +61958,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -57915,7 +61971,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse4_1, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .word, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -57931,7 +61987,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -57944,7 +62000,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .word, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -57960,7 +62016,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -57974,7 +62030,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .word, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -57990,7 +62046,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -58005,12 +62061,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .f16c, null, null, null }, .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_float = .{ .of = .qword, .is = .word } }}, + .dst_constraints = .{ .{ .scalar_float = .{ .of = .qword, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .v_ps, .cvtdq2, .dst0x, .src0x, ._, ._ }, .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ }, @@ -58018,12 +62074,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .f16c, .avx2, null, null }, .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .yword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_float = .{ .of = .xword, .is = .word } }}, + .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .v_ps, .cvtdq2, .dst0y, .src0y, ._, ._ }, .{ ._, .v_, .cvtps2ph, .dst0x, .dst0y, .rm(.{}), ._ }, @@ -58031,7 +62087,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .f16c, .avx2, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -58046,7 +62102,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -58058,7 +62114,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .f16c, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .qword, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -58073,7 +62129,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -58085,7 +62141,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .word, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -58101,7 +62157,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -58114,7 +62170,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse4_1, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .word, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -58130,7 +62186,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -58143,7 +62199,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .word, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -58159,7 +62215,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -58173,7 +62229,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .word, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -58189,7 +62245,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -58204,7 +62260,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .word, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -58220,7 +62276,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -58233,7 +62289,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse4_1, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .word, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -58249,7 +62305,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -58262,7 +62318,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .word, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -58278,7 +62334,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -58292,7 +62348,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .word, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -58308,7 +62364,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -58323,7 +62379,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .f16c, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .word, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -58338,7 +62394,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -58352,7 +62408,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .avx, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .word, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -58368,7 +62424,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -58381,7 +62437,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse4_1, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .word, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -58397,7 +62453,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -58410,7 +62466,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse2, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .word, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -58426,7 +62482,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -58440,7 +62496,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .word, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -58456,7 +62512,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -58471,7 +62527,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .avx, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .word, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -58487,7 +62543,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -58500,7 +62556,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse4_1, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .word, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -58516,7 +62572,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -58529,7 +62585,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse2, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .word, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -58545,7 +62601,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -58559,7 +62615,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .word, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -58575,7 +62631,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -58590,7 +62646,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .avx, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .word, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -58606,7 +62662,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -58620,7 +62676,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse4_1, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .word, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -58636,7 +62692,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -58650,7 +62706,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse2, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .word, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -58666,7 +62722,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -58681,7 +62737,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .word, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -58697,7 +62753,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -58713,7 +62769,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .avx, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .word, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -58729,7 +62785,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -58743,7 +62799,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse4_1, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .word, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -58759,7 +62815,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -58773,7 +62829,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse2, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .word, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -58789,7 +62845,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -58804,7 +62860,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .word, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -58820,7 +62876,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -58836,7 +62892,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .avx, null, null }, .src_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .word, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -58852,7 +62908,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, @@ -58868,7 +62924,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse4_1, null, null }, .src_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .word, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -58884,7 +62940,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, @@ -58900,7 +62956,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse2, null, null }, .src_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .word, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -58916,7 +62972,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, @@ -58933,7 +62989,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse, null, null }, .src_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .word, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -58949,7 +63005,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, @@ -58967,7 +63023,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .avx, null, null }, .src_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .word, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -58983,7 +63039,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, @@ -58999,7 +63055,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse4_1, null, null }, .src_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .word, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -59015,7 +63071,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, @@ -59031,7 +63087,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse2, null, null }, .src_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .word, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -59047,7 +63103,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, @@ -59064,7 +63120,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse, null, null }, .src_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .word, .is = .word } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -59080,7 +63136,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, @@ -59098,7 +63154,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .signed_int = .byte }, .any, .any }, - .dst_constraints = .{.{ .float = .dword }}, + .dst_constraints = .{ .{ .float = .dword }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_gpr, .none, .none } }, @@ -59114,7 +63170,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .sse }}, + .dst_temps = .{ .{ .rc = .sse }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .movsx, .tmp0d, .src0b, ._, ._ }, .{ ._, .v_ps, .xor, .dst0x, .dst0x, .dst0x, ._ }, @@ -59123,7 +63179,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, null, null, null }, .src_constraints = .{ .{ .signed_int = .byte }, .any, .any }, - .dst_constraints = .{.{ .float = .dword }}, + .dst_constraints = .{ .{ .float = .dword }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_gpr, .none, .none } }, @@ -59139,7 +63195,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .sse }}, + .dst_temps = .{ .{ .rc = .sse }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .movsx, .tmp0d, .src0b, ._, ._ }, .{ ._, ._ps, .xor, .dst0x, .dst0x, ._, ._ }, @@ -59148,7 +63204,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .unsigned_int = .byte }, .any, .any }, - .dst_constraints = .{.{ .float = .dword }}, + .dst_constraints = .{ .{ .float = .dword }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_gpr, .none, .none } }, @@ -59164,7 +63220,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .sse }}, + .dst_temps = .{ .{ .rc = .sse }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .movzx, .tmp0d, .src0b, ._, ._ }, .{ ._, .v_ps, .xor, .dst0x, .dst0x, .dst0x, ._ }, @@ -59173,7 +63229,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, null, null, null }, .src_constraints = .{ .{ .unsigned_int = .byte }, .any, .any }, - .dst_constraints = .{.{ .float = .dword }}, + .dst_constraints = .{ .{ .float = .dword }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_gpr, .none, .none } }, @@ -59189,7 +63245,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .sse }}, + .dst_temps = .{ .{ .rc = .sse }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .movzx, .tmp0d, .src0b, ._, ._ }, .{ ._, ._ps, .xor, .dst0x, .dst0x, ._, ._ }, @@ -59198,7 +63254,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .signed_int = .word }, .any, .any }, - .dst_constraints = .{.{ .float = .dword }}, + .dst_constraints = .{ .{ .float = .dword }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_gpr, .none, .none } }, @@ -59214,7 +63270,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .sse }}, + .dst_temps = .{ .{ .rc = .sse }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .movsx, .tmp0d, .src0w, ._, ._ }, .{ ._, .v_ps, .xor, .dst0x, .dst0x, .dst0x, ._ }, @@ -59223,7 +63279,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, null, null, null }, .src_constraints = .{ .{ .signed_int = .word }, .any, .any }, - .dst_constraints = .{.{ .float = .dword }}, + .dst_constraints = .{ .{ .float = .dword }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_gpr, .none, .none } }, @@ -59239,7 +63295,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .sse }}, + .dst_temps = .{ .{ .rc = .sse }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .movsx, .tmp0d, .src0w, ._, ._ }, .{ ._, ._ps, .xor, .dst0x, .dst0x, ._, ._ }, @@ -59248,7 +63304,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .unsigned_int = .word }, .any, .any }, - .dst_constraints = .{.{ .float = .dword }}, + .dst_constraints = .{ .{ .float = .dword }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_gpr, .none, .none } }, @@ -59264,7 +63320,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .sse }}, + .dst_temps = .{ .{ .rc = .sse }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .movzx, .tmp0d, .src0w, ._, ._ }, .{ ._, .v_ps, .xor, .dst0x, .dst0x, .dst0x, ._ }, @@ -59273,7 +63329,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, null, null, null }, .src_constraints = .{ .{ .unsigned_int = .word }, .any, .any }, - .dst_constraints = .{.{ .float = .dword }}, + .dst_constraints = .{ .{ .float = .dword }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_gpr, .none, .none } }, @@ -59289,7 +63345,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .sse }}, + .dst_temps = .{ .{ .rc = .sse }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .movzx, .tmp0d, .src0w, ._, ._ }, .{ ._, ._ps, .xor, .dst0x, .dst0x, ._, ._ }, @@ -59298,12 +63354,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .signed_or_exclusive_int = .dword }, .any, .any }, - .dst_constraints = .{.{ .float = .dword }}, + .dst_constraints = .{ .{ .float = .dword }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_gpr, .none, .none } }, }, - .dst_temps = .{.{ .rc = .sse }}, + .dst_temps = .{ .{ .rc = .sse }, .unused }, .each = .{ .once = &.{ .{ ._, .v_ps, .xor, .dst0x, .dst0x, .dst0x, ._ }, .{ ._, .v_ss, .cvtsi2, .dst0x, .dst0x, .src0d, ._ }, @@ -59311,12 +63367,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, null, null, null }, .src_constraints = .{ .{ .signed_or_exclusive_int = .dword }, .any, .any }, - .dst_constraints = .{.{ .float = .dword }}, + .dst_constraints = .{ .{ .float = .dword }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_gpr, .none, .none } }, }, - .dst_temps = .{.{ .rc = .sse }}, + .dst_temps = .{ .{ .rc = .sse }, .unused }, .each = .{ .once = &.{ .{ ._, ._ps, .xor, .dst0x, .dst0x, ._, ._ }, .{ ._, ._ss, .cvtsi2, .dst0x, .src0d, ._, ._ }, @@ -59324,7 +63380,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .exact_unsigned_int = 32 }, .any, .any }, - .dst_constraints = .{.{ .float = .dword }}, + .dst_constraints = .{ .{ .float = .dword }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_gpr, .none, .none } }, @@ -59340,7 +63396,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .sse }}, + .dst_temps = .{ .{ .rc = .sse }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ }, .{ ._, .v_ps, .xor, .dst0x, .dst0x, .dst0x, ._ }, @@ -59349,7 +63405,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, null, null, null }, .src_constraints = .{ .{ .exact_unsigned_int = 32 }, .any, .any }, - .dst_constraints = .{.{ .float = .dword }}, + .dst_constraints = .{ .{ .float = .dword }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_gpr, .none, .none } }, @@ -59365,7 +63421,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .sse }}, + .dst_temps = .{ .{ .rc = .sse }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ }, .{ ._, ._ps, .xor, .dst0x, .dst0x, ._, ._ }, @@ -59374,12 +63430,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .avx, null, null }, .src_constraints = .{ .{ .signed_or_exclusive_int = .qword }, .any, .any }, - .dst_constraints = .{.{ .float = .dword }}, + .dst_constraints = .{ .{ .float = .dword }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_gpr, .none, .none } }, }, - .dst_temps = .{.{ .rc = .sse }}, + .dst_temps = .{ .{ .rc = .sse }, .unused }, .each = .{ .once = &.{ .{ ._, .v_ps, .xor, .dst0x, .dst0x, .dst0x, ._ }, .{ ._, .v_ss, .cvtsi2, .dst0x, .dst0x, .src0q, ._ }, @@ -59387,12 +63443,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse, null, null }, .src_constraints = .{ .{ .signed_or_exclusive_int = .qword }, .any, .any }, - .dst_constraints = .{.{ .float = .dword }}, + .dst_constraints = .{ .{ .float = .dword }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_gpr, .none, .none } }, }, - .dst_temps = .{.{ .rc = .sse }}, + .dst_temps = .{ .{ .rc = .sse }, .unused }, .each = .{ .once = &.{ .{ ._, ._ps, .xor, .dst0x, .dst0x, ._, ._ }, .{ ._, ._ss, .cvtsi2, .dst0x, .src0q, ._, ._ }, @@ -59400,7 +63456,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .avx, null, null }, .src_constraints = .{ .{ .exact_unsigned_int = 64 }, .any, .any }, - .dst_constraints = .{.{ .float = .dword }}, + .dst_constraints = .{ .{ .float = .dword }, .any }, .patterns = &.{ .{ .src = .{ .to_mut_gpr, .none, .none } }, }, @@ -59415,7 +63471,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .sse }}, + .dst_temps = .{ .{ .rc = .sse }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, .v_ps, .xor, .dst0x, .dst0x, .dst0x, ._ }, @@ -59433,7 +63489,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse, null, null }, .src_constraints = .{ .{ .exact_unsigned_int = 64 }, .any, .any }, - .dst_constraints = .{.{ .float = .dword }}, + .dst_constraints = .{ .{ .float = .dword }, .any }, .patterns = &.{ .{ .src = .{ .to_mut_gpr, .none, .none } }, }, @@ -59448,7 +63504,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .sse }}, + .dst_temps = .{ .{ .rc = .sse }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._ps, .xor, .dst0x, .dst0x, ._, ._ }, @@ -59466,7 +63522,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse, null, null }, .src_constraints = .{ .{ .signed_int = .xword }, .any, .any }, - .dst_constraints = .{.{ .float = .dword }}, + .dst_constraints = .{ .{ .float = .dword }, .any }, .patterns = &.{ .{ .src = .{ .{ .to_reg_pair = .{ .rdi, .rsi } }, .none, .none } }, }, @@ -59482,7 +63538,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .reg = .xmm0 }}, + .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, @@ -59490,7 +63546,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse, null, null }, .src_constraints = .{ .{ .unsigned_int = .xword }, .any, .any }, - .dst_constraints = .{.{ .float = .dword }}, + .dst_constraints = .{ .{ .float = .dword }, .any }, .patterns = &.{ .{ .src = .{ .{ .to_reg_pair = .{ .rdi, .rsi } }, .none, .none } }, }, @@ -59506,7 +63562,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .reg = .xmm0 }}, + .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, @@ -59514,7 +63570,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse, null, null }, .src_constraints = .{ .{ .remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .float = .dword }}, + .dst_constraints = .{ .{ .float = .dword }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -59530,7 +63586,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .reg = .xmm0 }}, + .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, @@ -59540,7 +63596,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse, null, null }, .src_constraints = .{ .{ .remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .float = .dword }}, + .dst_constraints = .{ .{ .float = .dword }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -59556,7 +63612,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .reg = .xmm0 }}, + .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, @@ -59566,12 +63622,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .dword, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .scalar_float = .{ .of = .xword, .is = .dword } }}, + .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .vp_d, .movsxb, .dst0x, .src0d, ._, ._ }, .{ ._, .v_ps, .cvtdq2, .dst0x, .dst0x, ._, ._ }, @@ -59579,12 +63635,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse4_1, null, null, null }, .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .dword, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .scalar_float = .{ .of = .xword, .is = .dword } }}, + .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .p_d, .movsxb, .dst0x, .src0d, ._, ._ }, .{ ._, ._ps, .cvtdq2, .dst0x, .dst0x, ._, ._ }, @@ -59592,12 +63648,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx2, null, null, null }, .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .qword, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .scalar_float = .{ .of = .yword, .is = .dword } }}, + .dst_constraints = .{ .{ .scalar_float = .{ .of = .yword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .vp_d, .movsxb, .dst0y, .src0q, ._, ._ }, .{ ._, .v_ps, .cvtdq2, .dst0y, .dst0y, ._, ._ }, @@ -59605,12 +63661,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .dword, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .scalar_float = .{ .of = .xword, .is = .dword } }}, + .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .vp_d, .movzxb, .dst0x, .src0d, ._, ._ }, .{ ._, .v_ps, .cvtdq2, .dst0x, .dst0x, ._, ._ }, @@ -59618,12 +63674,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse4_1, null, null, null }, .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .dword, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .scalar_float = .{ .of = .xword, .is = .dword } }}, + .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .p_d, .movzxb, .dst0x, .src0d, ._, ._ }, .{ ._, ._ps, .cvtdq2, .dst0x, .dst0x, ._, ._ }, @@ -59631,12 +63687,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx2, null, null, null }, .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .qword, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .scalar_float = .{ .of = .yword, .is = .dword } }}, + .dst_constraints = .{ .{ .scalar_float = .{ .of = .yword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .vp_d, .movzxb, .dst0y, .src0q, ._, ._ }, .{ ._, .v_ps, .cvtdq2, .dst0y, .dst0y, ._, ._ }, @@ -59644,7 +63700,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx2, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -59659,7 +63715,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -59672,7 +63728,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -59687,7 +63743,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -59700,7 +63756,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse4_1, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -59715,7 +63771,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -59728,7 +63784,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx2, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -59743,7 +63799,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -59756,7 +63812,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -59771,7 +63827,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -59784,7 +63840,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse4_1, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -59799,7 +63855,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -59812,7 +63868,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, .slow_incdec, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -59828,7 +63884,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -59841,7 +63897,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -59857,7 +63913,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -59870,7 +63926,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, .slow_incdec, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -59886,7 +63942,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -59899,7 +63955,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -59915,7 +63971,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -59928,7 +63984,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, .slow_incdec, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -59944,7 +64000,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -59957,7 +64013,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -59973,7 +64029,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -59986,7 +64042,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, .slow_incdec, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -60002,7 +64058,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -60015,7 +64071,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -60031,7 +64087,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -60044,12 +64100,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .qword, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .scalar_float = .{ .of = .xword, .is = .dword } }}, + .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .vp_d, .movsxw, .dst0x, .src0q, ._, ._ }, .{ ._, .v_ps, .cvtdq2, .dst0x, .dst0x, ._, ._ }, @@ -60057,12 +64113,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse4_1, null, null, null }, .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .qword, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .scalar_float = .{ .of = .xword, .is = .dword } }}, + .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .p_d, .movsxw, .dst0x, .src0q, ._, ._ }, .{ ._, ._ps, .cvtdq2, .dst0x, .dst0x, ._, ._ }, @@ -60070,12 +64126,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx2, null, null, null }, .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .scalar_float = .{ .of = .yword, .is = .dword } }}, + .dst_constraints = .{ .{ .scalar_float = .{ .of = .yword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .vp_d, .movsxw, .dst0y, .src0x, ._, ._ }, .{ ._, .v_ps, .cvtdq2, .dst0y, .dst0y, ._, ._ }, @@ -60083,12 +64139,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .qword, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .scalar_float = .{ .of = .xword, .is = .dword } }}, + .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .vp_d, .movzxw, .dst0x, .src0q, ._, ._ }, .{ ._, .v_ps, .cvtdq2, .dst0x, .dst0x, ._, ._ }, @@ -60096,12 +64152,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse4_1, null, null, null }, .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .qword, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .scalar_float = .{ .of = .xword, .is = .dword } }}, + .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .p_d, .movzxw, .dst0x, .src0q, ._, ._ }, .{ ._, ._ps, .cvtdq2, .dst0x, .dst0x, ._, ._ }, @@ -60109,12 +64165,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx2, null, null, null }, .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .scalar_float = .{ .of = .yword, .is = .dword } }}, + .dst_constraints = .{ .{ .scalar_float = .{ .of = .yword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .vp_d, .movzxw, .dst0y, .src0x, ._, ._ }, .{ ._, .v_ps, .cvtdq2, .dst0y, .dst0y, ._, ._ }, @@ -60122,7 +64178,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx2, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -60137,7 +64193,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -60150,7 +64206,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -60165,7 +64221,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -60178,7 +64234,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse4_1, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -60193,7 +64249,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -60206,7 +64262,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx2, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -60221,7 +64277,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -60234,7 +64290,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -60249,7 +64305,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -60262,7 +64318,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse4_1, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -60277,7 +64333,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -60290,7 +64346,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -60306,7 +64362,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -60319,7 +64375,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -60335,7 +64391,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -60348,7 +64404,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -60364,7 +64420,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -60377,7 +64433,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -60393,7 +64449,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -60406,43 +64462,43 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_float = .{ .of = .xword, .is = .dword } }}, + .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .v_ps, .cvtdq2, .dst0x, .src0x, ._, ._ }, } }, }, .{ .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_float = .{ .of = .xword, .is = .dword } }}, + .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, ._ps, .cvtdq2, .dst0x, .src0x, ._, ._ }, } }, }, .{ .required_features = .{ .avx2, null, null, null }, .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .yword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_float = .{ .of = .yword, .is = .dword } }}, + .dst_constraints = .{ .{ .scalar_float = .{ .of = .yword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .v_ps, .cvtdq2, .dst0y, .src0y, ._, ._ }, } }, }, .{ .required_features = .{ .avx2, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -60457,7 +64513,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -60469,7 +64525,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -60484,7 +64540,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -60496,7 +64552,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -60511,7 +64567,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -60523,7 +64579,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -60538,7 +64594,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -60550,7 +64606,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -60566,7 +64622,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -60579,7 +64635,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -60595,7 +64651,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -60608,7 +64664,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -60624,7 +64680,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -60637,7 +64693,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -60653,7 +64709,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -60666,7 +64722,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .avx, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -60681,7 +64737,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -60694,7 +64750,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -60709,7 +64765,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -60722,7 +64778,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .avx, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -60738,7 +64794,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -60751,7 +64807,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -60767,7 +64823,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -60780,7 +64836,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .avx, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -60796,7 +64852,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -60809,7 +64865,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -60825,7 +64881,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -60838,7 +64894,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .avx, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -60854,7 +64910,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -60868,7 +64924,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -60884,7 +64940,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -60898,7 +64954,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .avx, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -60914,7 +64970,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -60928,7 +64984,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -60944,7 +65000,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -60958,7 +65014,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .avx, null, null }, .src_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -60974,7 +65030,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, @@ -60990,7 +65046,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse, null, null }, .src_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -61006,7 +65062,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, @@ -61022,7 +65078,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .avx, null, null }, .src_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -61038,7 +65094,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, @@ -61054,7 +65110,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse, null, null }, .src_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -61070,7 +65126,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, @@ -61086,7 +65142,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .signed_int = .byte }, .any, .any }, - .dst_constraints = .{.{ .float = .qword }}, + .dst_constraints = .{ .{ .float = .qword }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_gpr, .none, .none } }, @@ -61102,7 +65158,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .sse }}, + .dst_temps = .{ .{ .rc = .sse }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .movsx, .tmp0d, .src0b, ._, ._ }, .{ ._, .v_pd, .xor, .dst0x, .dst0x, .dst0x, ._ }, @@ -61111,7 +65167,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ .{ .signed_int = .byte }, .any, .any }, - .dst_constraints = .{.{ .float = .qword }}, + .dst_constraints = .{ .{ .float = .qword }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_gpr, .none, .none } }, @@ -61127,7 +65183,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .sse }}, + .dst_temps = .{ .{ .rc = .sse }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .movsx, .tmp0d, .src0b, ._, ._ }, .{ ._, ._pd, .xor, .dst0x, .dst0x, ._, ._ }, @@ -61136,7 +65192,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .unsigned_int = .byte }, .any, .any }, - .dst_constraints = .{.{ .float = .qword }}, + .dst_constraints = .{ .{ .float = .qword }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_gpr, .none, .none } }, @@ -61152,7 +65208,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .sse }}, + .dst_temps = .{ .{ .rc = .sse }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .movzx, .tmp0d, .src0b, ._, ._ }, .{ ._, .v_pd, .xor, .dst0x, .dst0x, .dst0x, ._ }, @@ -61161,7 +65217,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ .{ .unsigned_int = .byte }, .any, .any }, - .dst_constraints = .{.{ .float = .qword }}, + .dst_constraints = .{ .{ .float = .qword }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_gpr, .none, .none } }, @@ -61177,7 +65233,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .sse }}, + .dst_temps = .{ .{ .rc = .sse }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .movzx, .tmp0d, .src0b, ._, ._ }, .{ ._, ._pd, .xor, .dst0x, .dst0x, ._, ._ }, @@ -61186,7 +65242,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .signed_int = .word }, .any, .any }, - .dst_constraints = .{.{ .float = .qword }}, + .dst_constraints = .{ .{ .float = .qword }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_gpr, .none, .none } }, @@ -61202,7 +65258,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .sse }}, + .dst_temps = .{ .{ .rc = .sse }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .movsx, .tmp0d, .src0w, ._, ._ }, .{ ._, .v_pd, .xor, .dst0x, .dst0x, .dst0x, ._ }, @@ -61211,7 +65267,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ .{ .signed_int = .word }, .any, .any }, - .dst_constraints = .{.{ .float = .qword }}, + .dst_constraints = .{ .{ .float = .qword }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_gpr, .none, .none } }, @@ -61227,7 +65283,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .sse }}, + .dst_temps = .{ .{ .rc = .sse }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .movsx, .tmp0d, .src0w, ._, ._ }, .{ ._, ._pd, .xor, .dst0x, .dst0x, ._, ._ }, @@ -61236,7 +65292,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .unsigned_int = .word }, .any, .any }, - .dst_constraints = .{.{ .float = .qword }}, + .dst_constraints = .{ .{ .float = .qword }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_gpr, .none, .none } }, @@ -61252,7 +65308,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .sse }}, + .dst_temps = .{ .{ .rc = .sse }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .movzx, .tmp0d, .src0w, ._, ._ }, .{ ._, .v_pd, .xor, .dst0x, .dst0x, .dst0x, ._ }, @@ -61261,7 +65317,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ .{ .unsigned_int = .word }, .any, .any }, - .dst_constraints = .{.{ .float = .qword }}, + .dst_constraints = .{ .{ .float = .qword }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_gpr, .none, .none } }, @@ -61277,7 +65333,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .sse }}, + .dst_temps = .{ .{ .rc = .sse }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .movzx, .tmp0d, .src0w, ._, ._ }, .{ ._, ._pd, .xor, .dst0x, .dst0x, ._, ._ }, @@ -61286,12 +65342,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .signed_or_exclusive_int = .dword }, .any, .any }, - .dst_constraints = .{.{ .float = .qword }}, + .dst_constraints = .{ .{ .float = .qword }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_gpr, .none, .none } }, }, - .dst_temps = .{.{ .rc = .sse }}, + .dst_temps = .{ .{ .rc = .sse }, .unused }, .each = .{ .once = &.{ .{ ._, .v_pd, .xor, .dst0x, .dst0x, .dst0x, ._ }, .{ ._, .v_sd, .cvtsi2, .dst0x, .dst0x, .src0d, ._ }, @@ -61299,12 +65355,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ .{ .signed_or_exclusive_int = .dword }, .any, .any }, - .dst_constraints = .{.{ .float = .qword }}, + .dst_constraints = .{ .{ .float = .qword }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_gpr, .none, .none } }, }, - .dst_temps = .{.{ .rc = .sse }}, + .dst_temps = .{ .{ .rc = .sse }, .unused }, .each = .{ .once = &.{ .{ ._, ._pd, .xor, .dst0x, .dst0x, ._, ._ }, .{ ._, ._sd, .cvtsi2, .dst0x, .src0d, ._, ._ }, @@ -61312,7 +65368,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .exact_unsigned_int = 32 }, .any, .any }, - .dst_constraints = .{.{ .float = .qword }}, + .dst_constraints = .{ .{ .float = .qword }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_gpr, .none, .none } }, @@ -61328,7 +65384,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .sse }}, + .dst_temps = .{ .{ .rc = .sse }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ }, .{ ._, .v_pd, .xor, .dst0x, .dst0x, .dst0x, ._ }, @@ -61337,7 +65393,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ .{ .exact_unsigned_int = 32 }, .any, .any }, - .dst_constraints = .{.{ .float = .qword }}, + .dst_constraints = .{ .{ .float = .qword }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_gpr, .none, .none } }, @@ -61353,7 +65409,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .sse }}, + .dst_temps = .{ .{ .rc = .sse }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ }, .{ ._, ._pd, .xor, .dst0x, .dst0x, ._, ._ }, @@ -61362,7 +65418,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .x87, null, null, null }, .src_constraints = .{ .{ .signed_int = .byte }, .any, .any }, - .dst_constraints = .{.{ .float = .qword }}, + .dst_constraints = .{ .{ .float = .qword }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_gpr, .none, .none } }, @@ -61378,7 +65434,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .each = .{ .once = &.{ .{ ._, ._, .movsx, .tmp0d, .src0b, ._, ._ }, .{ ._, ._, .mov, .tmp1w, .tmp0w, ._, ._ }, @@ -61388,7 +65444,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .x87, null, null, null }, .src_constraints = .{ .{ .unsigned_int = .byte }, .any, .any }, - .dst_constraints = .{.{ .float = .qword }}, + .dst_constraints = .{ .{ .float = .qword }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_gpr, .none, .none } }, @@ -61404,7 +65460,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .each = .{ .once = &.{ .{ ._, ._, .movzx, .tmp0d, .src0b, ._, ._ }, .{ ._, ._, .mov, .tmp1w, .tmp0w, ._, ._ }, @@ -61414,7 +65470,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .x87, null, null, null }, .src_constraints = .{ .{ .signed_or_exclusive_int = .word }, .any, .any }, - .dst_constraints = .{.{ .float = .qword }}, + .dst_constraints = .{ .{ .float = .qword }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -61429,7 +65485,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .each = .{ .once = &.{ .{ ._, .fi_, .ld, .src0w, ._, ._, ._ }, .{ ._, .f_p, .st, .dst0q, ._, ._, ._ }, @@ -61437,7 +65493,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .x87, null, null, null }, .src_constraints = .{ .{ .exact_unsigned_int = 16 }, .any, .any }, - .dst_constraints = .{.{ .float = .qword }}, + .dst_constraints = .{ .{ .float = .qword }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_gpr, .none, .none } }, @@ -61453,7 +65509,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .each = .{ .once = &.{ .{ ._, ._, .movzx, .tmp0d, .src0w, ._, ._ }, .{ ._, ._, .mov, .tmp1d, .tmp0d, ._, ._ }, @@ -61463,7 +65519,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .x87, null, null, null }, .src_constraints = .{ .{ .signed_or_exclusive_int = .dword }, .any, .any }, - .dst_constraints = .{.{ .float = .qword }}, + .dst_constraints = .{ .{ .float = .qword }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -61478,7 +65534,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .each = .{ .once = &.{ .{ ._, .fi_, .ld, .src0d, ._, ._, ._ }, .{ ._, .f_p, .st, .dst0q, ._, ._, ._ }, @@ -61486,7 +65542,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .x87, null, null }, .src_constraints = .{ .{ .exact_unsigned_int = 32 }, .any, .any }, - .dst_constraints = .{.{ .float = .qword }}, + .dst_constraints = .{ .{ .float = .qword }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_gpr, .none, .none } }, @@ -61502,7 +65558,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ }, .{ ._, ._, .mov, .tmp1q, .tmp0q, ._, ._ }, @@ -61512,12 +65568,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .avx, null, null }, .src_constraints = .{ .{ .signed_or_exclusive_int = .qword }, .any, .any }, - .dst_constraints = .{.{ .float = .qword }}, + .dst_constraints = .{ .{ .float = .qword }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_gpr, .none, .none } }, }, - .dst_temps = .{.{ .rc = .sse }}, + .dst_temps = .{ .{ .rc = .sse }, .unused }, .each = .{ .once = &.{ .{ ._, .v_pd, .xor, .dst0x, .dst0x, .dst0x, ._ }, .{ ._, .v_sd, .cvtsi2, .dst0x, .dst0x, .src0q, ._ }, @@ -61525,12 +65581,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse2, null, null }, .src_constraints = .{ .{ .signed_or_exclusive_int = .qword }, .any, .any }, - .dst_constraints = .{.{ .float = .qword }}, + .dst_constraints = .{ .{ .float = .qword }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_gpr, .none, .none } }, }, - .dst_temps = .{.{ .rc = .sse }}, + .dst_temps = .{ .{ .rc = .sse }, .unused }, .each = .{ .once = &.{ .{ ._, ._pd, .xor, .dst0x, .dst0x, ._, ._ }, .{ ._, ._sd, .cvtsi2, .dst0x, .src0q, ._, ._ }, @@ -61538,7 +65594,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .avx, null, null }, .src_constraints = .{ .{ .exact_unsigned_int = 64 }, .any, .any }, - .dst_constraints = .{.{ .float = .qword }}, + .dst_constraints = .{ .{ .float = .qword }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_gpr, .none, .none } }, @@ -61554,7 +65610,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .sse }}, + .dst_temps = .{ .{ .rc = .sse }, .unused }, .each = .{ .once = &.{ .{ ._, .v_q, .mov, .tmp0x, .src0q, ._, ._ }, .{ ._, ._, .lea, .tmp1p, .mem(.tmp2), ._, ._ }, @@ -61567,7 +65623,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse2, null, null }, .src_constraints = .{ .{ .exact_unsigned_int = 64 }, .any, .any }, - .dst_constraints = .{.{ .float = .qword }}, + .dst_constraints = .{ .{ .float = .qword }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_gpr, .none, .none } }, @@ -61583,7 +65639,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .sse }}, + .dst_temps = .{ .{ .rc = .sse }, .unused }, .each = .{ .once = &.{ .{ ._, ._q, .mov, .tmp0x, .src0q, ._, ._ }, .{ ._, ._, .lea, .tmp1p, .mem(.tmp2), ._, ._ }, @@ -61597,7 +65653,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .x87, null, null, null }, .src_constraints = .{ .{ .signed_or_exclusive_int = .qword }, .any, .any }, - .dst_constraints = .{.{ .float = .qword }}, + .dst_constraints = .{ .{ .float = .qword }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -61612,7 +65668,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .each = .{ .once = &.{ .{ ._, .fi_, .ld, .src0q, ._, ._, ._ }, .{ ._, .f_p, .st, .dst0q, ._, ._, ._ }, @@ -61620,7 +65676,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .x87, null, null }, .src_constraints = .{ .{ .exact_unsigned_int = 64 }, .any, .any }, - .dst_constraints = .{.{ .float = .qword }}, + .dst_constraints = .{ .{ .float = .qword }, .any }, .patterns = &.{ .{ .src = .{ .to_mut_gpr, .none, .none } }, }, @@ -61635,7 +65691,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .@"test", .src0q, .src0q, ._, ._ }, @@ -61656,7 +65712,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse, null, null }, .src_constraints = .{ .{ .signed_int = .xword }, .any, .any }, - .dst_constraints = .{.{ .float = .qword }}, + .dst_constraints = .{ .{ .float = .qword }, .any }, .patterns = &.{ .{ .src = .{ .{ .to_reg_pair = .{ .rdi, .rsi } }, .none, .none } }, }, @@ -61672,7 +65728,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .reg = .xmm0 }}, + .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, @@ -61680,7 +65736,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse, null, null }, .src_constraints = .{ .{ .unsigned_int = .xword }, .any, .any }, - .dst_constraints = .{.{ .float = .qword }}, + .dst_constraints = .{ .{ .float = .qword }, .any }, .patterns = &.{ .{ .src = .{ .{ .to_reg_pair = .{ .rdi, .rsi } }, .none, .none } }, }, @@ -61696,7 +65752,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .reg = .xmm0 }}, + .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, @@ -61704,7 +65760,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse, null, null }, .src_constraints = .{ .{ .remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .float = .qword }}, + .dst_constraints = .{ .{ .float = .qword }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -61720,7 +65776,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .reg = .xmm0 }}, + .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, @@ -61730,7 +65786,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse, null, null }, .src_constraints = .{ .{ .remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .float = .qword }}, + .dst_constraints = .{ .{ .float = .qword }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -61746,7 +65802,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .reg = .xmm0 }}, + .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, @@ -61756,12 +65812,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .word, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .scalar_float = .{ .of = .xword, .is = .qword } }}, + .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .vp_d, .movsxb, .dst0x, .src0d, ._, ._ }, .{ ._, .v_pd, .cvtdq2, .dst0x, .dst0q, ._, ._ }, @@ -61769,12 +65825,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse4_1, null, null, null }, .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .word, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .scalar_float = .{ .of = .xword, .is = .qword } }}, + .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .p_d, .movsxb, .dst0x, .src0d, ._, ._ }, .{ ._, ._pd, .cvtdq2, .dst0x, .dst0q, ._, ._ }, @@ -61782,12 +65838,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx2, null, null, null }, .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .dword, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .scalar_float = .{ .of = .yword, .is = .qword } }}, + .dst_constraints = .{ .{ .scalar_float = .{ .of = .yword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .vp_d, .movsxb, .dst0x, .src0d, ._, ._ }, .{ ._, .v_pd, .cvtdq2, .dst0y, .dst0x, ._, ._ }, @@ -61795,12 +65851,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .word, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .scalar_float = .{ .of = .xword, .is = .qword } }}, + .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .vp_d, .movzxb, .dst0x, .src0d, ._, ._ }, .{ ._, .v_pd, .cvtdq2, .dst0x, .dst0q, ._, ._ }, @@ -61808,12 +65864,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse4_1, null, null, null }, .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .word, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .scalar_float = .{ .of = .xword, .is = .qword } }}, + .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .p_d, .movzxb, .dst0x, .src0d, ._, ._ }, .{ ._, ._pd, .cvtdq2, .dst0x, .dst0q, ._, ._ }, @@ -61821,12 +65877,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx2, null, null, null }, .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .dword, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .scalar_float = .{ .of = .yword, .is = .qword } }}, + .dst_constraints = .{ .{ .scalar_float = .{ .of = .yword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .vp_d, .movzxb, .dst0x, .src0d, ._, ._ }, .{ ._, .v_pd, .cvtdq2, .dst0y, .dst0x, ._, ._ }, @@ -61834,7 +65890,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx2, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .yword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .yword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -61849,7 +65905,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -61862,7 +65918,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -61877,7 +65933,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -61892,7 +65948,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse4_1, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -61907,7 +65963,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -61922,7 +65978,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx2, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .yword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .yword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -61937,7 +65993,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -61950,7 +66006,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -61965,7 +66021,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -61980,7 +66036,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse4_1, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -61995,7 +66051,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -62010,7 +66066,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, .slow_incdec, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -62026,7 +66082,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -62039,7 +66095,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -62055,7 +66111,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -62068,7 +66124,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse2, .slow_incdec, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -62084,7 +66140,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -62097,7 +66153,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -62113,7 +66169,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -62126,7 +66182,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, .slow_incdec, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -62142,7 +66198,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -62155,7 +66211,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -62171,7 +66227,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -62184,7 +66240,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, .slow_incdec, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -62200,7 +66256,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -62213,7 +66269,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -62229,7 +66285,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -62242,7 +66298,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse2, .slow_incdec, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -62258,7 +66314,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -62271,7 +66327,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -62287,7 +66343,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -62300,7 +66356,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, .slow_incdec, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -62316,7 +66372,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -62329,7 +66385,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -62345,7 +66401,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -62358,12 +66414,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .dword, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .scalar_float = .{ .of = .xword, .is = .qword } }}, + .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .vp_d, .movsxw, .dst0x, .src0q, ._, ._ }, .{ ._, .v_pd, .cvtdq2, .dst0x, .dst0q, ._, ._ }, @@ -62371,12 +66427,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse4_1, null, null, null }, .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .dword, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .scalar_float = .{ .of = .xword, .is = .qword } }}, + .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .p_d, .movsxw, .dst0x, .src0q, ._, ._ }, .{ ._, ._pd, .cvtdq2, .dst0x, .dst0q, ._, ._ }, @@ -62384,12 +66440,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx2, null, null, null }, .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .qword, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .scalar_float = .{ .of = .yword, .is = .qword } }}, + .dst_constraints = .{ .{ .scalar_float = .{ .of = .yword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .vp_d, .movsxw, .dst0x, .src0q, ._, ._ }, .{ ._, .v_pd, .cvtdq2, .dst0y, .dst0x, ._, ._ }, @@ -62397,12 +66453,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .dword, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .scalar_float = .{ .of = .xword, .is = .qword } }}, + .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .vp_d, .movzxw, .dst0x, .src0q, ._, ._ }, .{ ._, .v_pd, .cvtdq2, .dst0x, .dst0q, ._, ._ }, @@ -62410,12 +66466,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse4_1, null, null, null }, .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .dword, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .scalar_float = .{ .of = .xword, .is = .qword } }}, + .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .p_d, .movzxw, .dst0x, .src0q, ._, ._ }, .{ ._, ._pd, .cvtdq2, .dst0x, .dst0q, ._, ._ }, @@ -62423,12 +66479,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx2, null, null, null }, .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .qword, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .scalar_float = .{ .of = .yword, .is = .qword } }}, + .dst_constraints = .{ .{ .scalar_float = .{ .of = .yword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .vp_d, .movzxw, .dst0x, .src0q, ._, ._ }, .{ ._, .v_pd, .cvtdq2, .dst0y, .dst0x, ._, ._ }, @@ -62436,7 +66492,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx2, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .yword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .yword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -62451,7 +66507,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -62464,7 +66520,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -62479,7 +66535,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -62493,7 +66549,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse4_1, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -62508,7 +66564,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -62522,7 +66578,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx2, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .yword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .yword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -62537,7 +66593,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -62550,7 +66606,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -62565,7 +66621,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -62579,7 +66635,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse4_1, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -62594,7 +66650,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -62608,7 +66664,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -62624,7 +66680,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -62637,7 +66693,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -62653,7 +66709,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -62666,7 +66722,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -62682,7 +66738,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -62695,7 +66751,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -62711,7 +66767,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -62724,7 +66780,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -62740,7 +66796,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -62753,7 +66809,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -62769,7 +66825,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -62782,43 +66838,43 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .qword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_float = .{ .of = .xword, .is = .qword } }}, + .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .v_pd, .cvtdq2, .dst0x, .src0q, ._, ._ }, } }, }, .{ .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .qword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_float = .{ .of = .xword, .is = .qword } }}, + .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, ._pd, .cvtdq2, .dst0x, .src0q, ._, ._ }, } }, }, .{ .required_features = .{ .avx2, null, null, null }, .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .scalar_float = .{ .of = .yword, .is = .qword } }}, + .dst_constraints = .{ .{ .scalar_float = .{ .of = .yword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_sse, .none, .none } }, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .v_pd, .cvtdq2, .dst0y, .src0x, ._, ._ }, } }, }, .{ .required_features = .{ .avx2, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .yword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .yword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -62833,7 +66889,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -62845,7 +66901,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -62860,7 +66916,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -62872,7 +66928,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -62887,7 +66943,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -62899,7 +66955,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -62915,7 +66971,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -62928,7 +66984,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -62944,7 +67000,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -62957,7 +67013,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -62973,7 +67029,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -62986,7 +67042,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -63002,7 +67058,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -63015,7 +67071,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -63031,7 +67087,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -63044,7 +67100,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -63060,7 +67116,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -63073,7 +67129,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .avx, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -63088,7 +67144,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -63101,7 +67157,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse2, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -63116,7 +67172,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -63129,7 +67185,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .avx, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -63145,7 +67201,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -63158,7 +67214,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse2, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -63174,7 +67230,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -63187,7 +67243,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -63203,7 +67259,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -63216,7 +67272,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .avx, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -63232,7 +67288,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -63245,7 +67301,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse2, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -63261,7 +67317,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -63274,7 +67330,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -63290,7 +67346,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -63303,7 +67359,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .avx, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -63319,7 +67375,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -63333,7 +67389,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse2, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -63349,7 +67405,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -63363,7 +67419,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -63379,7 +67435,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -63393,7 +67449,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .avx, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -63409,7 +67465,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -63423,7 +67479,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse2, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -63439,7 +67495,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -63453,7 +67509,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -63469,7 +67525,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, @@ -63483,7 +67539,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .avx, null, null }, .src_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -63499,7 +67555,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, @@ -63515,7 +67571,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse2, null, null }, .src_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -63531,7 +67587,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, @@ -63547,7 +67603,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse, null, null }, .src_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -63563,7 +67619,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, @@ -63579,7 +67635,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .avx, null, null }, .src_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -63595,7 +67651,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, @@ -63611,7 +67667,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse2, null, null }, .src_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -63627,7 +67683,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, @@ -63643,7 +67699,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse, null, null }, .src_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -63659,7 +67715,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, @@ -63675,7 +67731,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .x87, null, null, null }, .src_constraints = .{ .{ .signed_int = .byte }, .any, .any }, - .dst_constraints = .{.{ .float = .tbyte }}, + .dst_constraints = .{ .{ .float = .tbyte }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_gpr, .none, .none } }, @@ -63691,7 +67747,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .x87 }}, + .dst_temps = .{ .{ .rc = .x87 }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .movsx, .tmp0d, .src0b, ._, ._ }, .{ ._, ._, .mov, .tmp1w, .tmp0w, ._, ._ }, @@ -63701,7 +67757,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .x87, null, null, null }, .src_constraints = .{ .{ .unsigned_int = .byte }, .any, .any }, - .dst_constraints = .{.{ .float = .tbyte }}, + .dst_constraints = .{ .{ .float = .tbyte }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_gpr, .none, .none } }, @@ -63717,7 +67773,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .x87 }}, + .dst_temps = .{ .{ .rc = .x87 }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .movzx, .tmp0d, .src0b, ._, ._ }, .{ ._, ._, .mov, .tmp1w, .tmp0w, ._, ._ }, @@ -63727,7 +67783,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .x87, null, null, null }, .src_constraints = .{ .{ .signed_or_exclusive_int = .word }, .any, .any }, - .dst_constraints = .{.{ .float = .tbyte }}, + .dst_constraints = .{ .{ .float = .tbyte }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -63742,7 +67798,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .x87 }}, + .dst_temps = .{ .{ .rc = .x87 }, .unused }, .each = .{ .once = &.{ .{ ._, .fi_, .ld, .src0w, ._, ._, ._ }, .{ ._, .f_p, .st, .dst0t, ._, ._, ._ }, @@ -63750,7 +67806,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .x87, null, null, null }, .src_constraints = .{ .{ .exact_unsigned_int = 16 }, .any, .any }, - .dst_constraints = .{.{ .float = .tbyte }}, + .dst_constraints = .{ .{ .float = .tbyte }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_gpr, .none, .none } }, @@ -63766,7 +67822,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .x87 }}, + .dst_temps = .{ .{ .rc = .x87 }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .movzx, .tmp0d, .src0w, ._, ._ }, .{ ._, ._, .mov, .tmp1d, .tmp0d, ._, ._ }, @@ -63776,7 +67832,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .x87, null, null, null }, .src_constraints = .{ .{ .signed_or_exclusive_int = .dword }, .any, .any }, - .dst_constraints = .{.{ .float = .tbyte }}, + .dst_constraints = .{ .{ .float = .tbyte }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -63791,7 +67847,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .x87 }}, + .dst_temps = .{ .{ .rc = .x87 }, .unused }, .each = .{ .once = &.{ .{ ._, .fi_, .ld, .src0d, ._, ._, ._ }, .{ ._, .f_p, .st, .dst0t, ._, ._, ._ }, @@ -63799,7 +67855,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .x87, null, null }, .src_constraints = .{ .{ .exact_unsigned_int = 32 }, .any, .any }, - .dst_constraints = .{.{ .float = .tbyte }}, + .dst_constraints = .{ .{ .float = .tbyte }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_gpr, .none, .none } }, @@ -63815,7 +67871,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .x87 }}, + .dst_temps = .{ .{ .rc = .x87 }, .unused }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ }, .{ ._, ._, .mov, .tmp1q, .tmp0q, ._, ._ }, @@ -63825,7 +67881,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .x87, null, null, null }, .src_constraints = .{ .{ .signed_or_exclusive_int = .qword }, .any, .any }, - .dst_constraints = .{.{ .float = .tbyte }}, + .dst_constraints = .{ .{ .float = .tbyte }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -63840,7 +67896,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .x87 }}, + .dst_temps = .{ .{ .rc = .x87 }, .unused }, .each = .{ .once = &.{ .{ ._, .fi_, .ld, .src0q, ._, ._, ._ }, .{ ._, .f_p, .st, .dst0t, ._, ._, ._ }, @@ -63848,7 +67904,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .x87, null, null, null }, .src_constraints = .{ .{ .exact_unsigned_int = 64 }, .any, .any }, - .dst_constraints = .{.{ .float = .tbyte }}, + .dst_constraints = .{ .{ .float = .tbyte }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -63863,7 +67919,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .rc = .x87 }}, + .dst_temps = .{ .{ .rc = .x87 }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, .fi_, .ld, .src0q, ._, ._, ._ }, @@ -63876,7 +67932,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse, null, null }, .src_constraints = .{ .{ .signed_int = .xword }, .any, .any }, - .dst_constraints = .{.{ .float = .tbyte }}, + .dst_constraints = .{ .{ .float = .tbyte }, .any }, .patterns = &.{ .{ .src = .{ .{ .to_reg_pair = .{ .rdi, .rsi } }, .none, .none } }, }, @@ -63892,7 +67948,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .reg = .st0 }}, + .dst_temps = .{ .{ .reg = .st0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, @@ -63900,7 +67956,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse, null, null }, .src_constraints = .{ .{ .unsigned_int = .xword }, .any, .any }, - .dst_constraints = .{.{ .float = .tbyte }}, + .dst_constraints = .{ .{ .float = .tbyte }, .any }, .patterns = &.{ .{ .src = .{ .{ .to_reg_pair = .{ .rdi, .rsi } }, .none, .none } }, }, @@ -63916,7 +67972,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .reg = .st0 }}, + .dst_temps = .{ .{ .reg = .st0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, @@ -63924,7 +67980,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse, null, null }, .src_constraints = .{ .{ .remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .float = .tbyte }}, + .dst_constraints = .{ .{ .float = .tbyte }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -63940,7 +67996,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .reg = .st0 }}, + .dst_temps = .{ .{ .reg = .st0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, @@ -63950,7 +68006,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse, null, null }, .src_constraints = .{ .{ .remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .float = .tbyte }}, + .dst_constraints = .{ .{ .float = .tbyte }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -63966,7 +68022,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .reg = .st0 }}, + .dst_temps = .{ .{ .reg = .st0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, @@ -63976,7 +68032,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .x87, .slow_incdec, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -63991,7 +68047,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -64007,7 +68063,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .x87, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -64022,7 +68078,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -64038,7 +68094,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .x87, .slow_incdec, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -64053,7 +68109,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -64069,7 +68125,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .x87, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -64084,7 +68140,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -64100,7 +68156,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .x87, .slow_incdec, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -64116,7 +68172,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -64132,7 +68188,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .x87, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -64148,7 +68204,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -64164,7 +68220,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .x87, .slow_incdec, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -64180,7 +68236,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -64196,7 +68252,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .x87, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -64212,7 +68268,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -64228,7 +68284,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .x87, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -64243,7 +68299,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -64255,7 +68311,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .x87, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -64271,7 +68327,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -64285,7 +68341,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .x87, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -64301,7 +68357,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -64315,7 +68371,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .x87, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -64330,7 +68386,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -64342,7 +68398,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .x87, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -64358,7 +68414,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -64372,7 +68428,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .x87, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -64388,7 +68444,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -64402,7 +68458,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .x87, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -64417,7 +68473,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -64429,7 +68485,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .x87, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -64445,7 +68501,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -64459,7 +68515,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .x87, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -64475,7 +68531,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -64489,7 +68545,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .x87, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -64505,7 +68561,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -64520,7 +68576,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .x87, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -64536,7 +68592,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -64551,7 +68607,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .x87, null, null }, .src_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -64567,7 +68623,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, @@ -64584,7 +68640,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .x87, null, null }, .src_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -64600,7 +68656,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, @@ -64617,7 +68673,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, null, null, null }, .src_constraints = .{ .{ .signed_int = .byte }, .any, .any }, - .dst_constraints = .{.{ .float = .xword }}, + .dst_constraints = .{ .{ .float = .xword }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_gpr, .none, .none } }, @@ -64634,7 +68690,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .reg = .xmm0 }}, + .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .movsx, .tmp0d, .src0b, ._, ._ }, @@ -64643,7 +68699,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, null, null, null }, .src_constraints = .{ .{ .unsigned_int = .byte }, .any, .any }, - .dst_constraints = .{.{ .float = .xword }}, + .dst_constraints = .{ .{ .float = .xword }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_gpr, .none, .none } }, @@ -64660,7 +68716,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .reg = .xmm0 }}, + .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .movzx, .tmp0d, .src0b, ._, ._ }, @@ -64669,7 +68725,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, null, null, null }, .src_constraints = .{ .{ .signed_int = .word }, .any, .any }, - .dst_constraints = .{.{ .float = .xword }}, + .dst_constraints = .{ .{ .float = .xword }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_gpr, .none, .none } }, @@ -64686,7 +68742,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .reg = .xmm0 }}, + .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .movsx, .tmp0d, .src0w, ._, ._ }, @@ -64695,7 +68751,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, null, null, null }, .src_constraints = .{ .{ .unsigned_int = .word }, .any, .any }, - .dst_constraints = .{.{ .float = .xword }}, + .dst_constraints = .{ .{ .float = .xword }, .any }, .patterns = &.{ .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_gpr, .none, .none } }, @@ -64712,7 +68768,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .reg = .xmm0 }}, + .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .movzx, .tmp0d, .src0w, ._, ._ }, @@ -64721,7 +68777,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, null, null, null }, .src_constraints = .{ .{ .signed_int = .dword }, .any, .any }, - .dst_constraints = .{.{ .float = .xword }}, + .dst_constraints = .{ .{ .float = .xword }, .any }, .patterns = &.{ .{ .src = .{ .{ .to_reg = .edi }, .none, .none } }, }, @@ -64737,7 +68793,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .reg = .xmm0 }}, + .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, @@ -64745,7 +68801,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, null, null, null }, .src_constraints = .{ .{ .unsigned_int = .dword }, .any, .any }, - .dst_constraints = .{.{ .float = .xword }}, + .dst_constraints = .{ .{ .float = .xword }, .any }, .patterns = &.{ .{ .src = .{ .{ .to_reg = .edi }, .none, .none } }, }, @@ -64761,7 +68817,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .reg = .xmm0 }}, + .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, @@ -64769,7 +68825,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse, null, null }, .src_constraints = .{ .{ .signed_int = .qword }, .any, .any }, - .dst_constraints = .{.{ .float = .xword }}, + .dst_constraints = .{ .{ .float = .xword }, .any }, .patterns = &.{ .{ .src = .{ .{ .to_reg = .rdi }, .none, .none } }, }, @@ -64785,7 +68841,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .reg = .xmm0 }}, + .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, @@ -64793,7 +68849,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse, null, null }, .src_constraints = .{ .{ .unsigned_int = .qword }, .any, .any }, - .dst_constraints = .{.{ .float = .xword }}, + .dst_constraints = .{ .{ .float = .xword }, .any }, .patterns = &.{ .{ .src = .{ .{ .to_reg = .rdi }, .none, .none } }, }, @@ -64809,7 +68865,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .reg = .xmm0 }}, + .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, @@ -64817,7 +68873,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse, null, null }, .src_constraints = .{ .{ .signed_int = .xword }, .any, .any }, - .dst_constraints = .{.{ .float = .xword }}, + .dst_constraints = .{ .{ .float = .xword }, .any }, .patterns = &.{ .{ .src = .{ .{ .to_reg_pair = .{ .rdi, .rsi } }, .none, .none } }, }, @@ -64833,7 +68889,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .reg = .xmm0 }}, + .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, @@ -64841,7 +68897,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse, null, null }, .src_constraints = .{ .{ .unsigned_int = .xword }, .any, .any }, - .dst_constraints = .{.{ .float = .xword }}, + .dst_constraints = .{ .{ .float = .xword }, .any }, .patterns = &.{ .{ .src = .{ .{ .to_reg_pair = .{ .rdi, .rsi } }, .none, .none } }, }, @@ -64857,7 +68913,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .reg = .xmm0 }}, + .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, @@ -64865,7 +68921,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse, null, null }, .src_constraints = .{ .{ .remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .float = .xword }}, + .dst_constraints = .{ .{ .float = .xword }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -64881,7 +68937,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .reg = .xmm0 }}, + .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, @@ -64891,7 +68947,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse, null, null }, .src_constraints = .{ .{ .remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .float = .xword }}, + .dst_constraints = .{ .{ .float = .xword }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -64907,7 +68963,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .reg = .xmm0 }}, + .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, @@ -64917,7 +68973,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, .slow_incdec, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -64933,7 +68989,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -64948,7 +69004,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -64964,7 +69020,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -64979,7 +69035,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse2, .slow_incdec, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -64995,7 +69051,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -65010,7 +69066,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -65026,7 +69082,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -65041,7 +69097,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, .slow_incdec, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -65057,7 +69113,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -65072,7 +69128,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -65088,7 +69144,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -65103,7 +69159,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, .slow_incdec, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -65119,7 +69175,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -65134,7 +69190,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -65150,7 +69206,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -65165,7 +69221,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse2, .slow_incdec, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -65181,7 +69237,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -65196,7 +69252,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -65212,7 +69268,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -65227,7 +69283,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, .slow_incdec, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -65243,7 +69299,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -65258,7 +69314,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -65274,7 +69330,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -65289,7 +69345,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -65305,7 +69361,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -65318,7 +69374,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -65334,7 +69390,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -65347,7 +69403,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -65363,7 +69419,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -65376,7 +69432,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -65392,7 +69448,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -65405,7 +69461,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -65421,7 +69477,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -65434,7 +69490,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -65450,7 +69506,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -65463,7 +69519,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -65479,7 +69535,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -65492,7 +69548,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -65508,7 +69564,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -65521,7 +69577,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -65537,7 +69593,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -65550,7 +69606,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .avx, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -65566,7 +69622,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -65579,7 +69635,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse2, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -65595,7 +69651,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -65608,7 +69664,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .sse, null, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -65624,7 +69680,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -65637,7 +69693,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .avx, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -65653,7 +69709,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -65666,7 +69722,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse2, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -65682,7 +69738,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -65695,7 +69751,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -65711,7 +69767,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -65724,7 +69780,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .avx, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -65740,7 +69796,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -65753,7 +69809,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse2, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -65769,7 +69825,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -65782,7 +69838,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -65798,7 +69854,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -65811,7 +69867,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .avx, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -65827,7 +69883,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -65841,7 +69897,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse2, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -65857,7 +69913,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -65871,7 +69927,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse, null, null }, .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -65887,7 +69943,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -65901,7 +69957,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .avx, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -65917,7 +69973,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -65931,7 +69987,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse2, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -65947,7 +70003,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -65961,7 +70017,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse, null, null }, .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -65977,7 +70033,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -65991,7 +70047,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .avx, null, null }, .src_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -66007,7 +70063,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, @@ -66023,7 +70079,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse2, null, null }, .src_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -66039,7 +70095,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, @@ -66055,7 +70111,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse, null, null }, .src_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -66071,7 +70127,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, @@ -66087,7 +70143,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .avx, null, null }, .src_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -66103,7 +70159,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, @@ -66119,7 +70175,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse2, null, null }, .src_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -66135,7 +70191,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, @@ -66151,7 +70207,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .{ .required_features = .{ .@"64bit", .sse, null, null }, .src_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, - .dst_constraints = .{.{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }}, + .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, .patterns = &.{ .{ .src = .{ .to_mem, .none, .none } }, }, @@ -66167,7 +70223,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, @@ -66191,7 +70247,373 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }; try res[0].finish(inst, &.{ty_op.operand}, &ops, cg); }, - .error_set_has_value => return cg.fail("TODO implement error_set_has_value", .{}), + + .memset => try cg.airMemset(inst, false), + .memset_safe => try cg.airMemset(inst, true), + .memcpy => try cg.airMemcpy(inst), + .cmpxchg_weak, .cmpxchg_strong => try cg.airCmpxchg(inst), + .atomic_load => try cg.airAtomicLoad(inst), + .atomic_store_unordered => try cg.airAtomicStore(inst, .unordered), + .atomic_store_monotonic => try cg.airAtomicStore(inst, .monotonic), + .atomic_store_release => try cg.airAtomicStore(inst, .release), + .atomic_store_seq_cst => try cg.airAtomicStore(inst, .seq_cst), + .atomic_rmw => try cg.airAtomicRmw(inst), + .is_named_enum_value => |air_tag| if (use_old) try cg.airTagName(inst, true) else { + const un_op = air_datas[@intFromEnum(inst)].un_op; + var ops = try cg.tempsFromOperands(inst, .{un_op}); + var res: [1]Temp = undefined; + cg.select(&res, &.{.bool}, &ops, comptime &.{ .{ + .required_features = .{ .avx, null, null, null }, + .src_constraints = .{ .{ .int = .gpr }, .any, .any }, + .patterns = &.{ + .{ .src = .{ .{ .to_param_gpr = .{ .cc = .zigcc, .index = 0 } }, .none, .none } }, + }, + .call_frame = .{ .alignment = .@"32" }, + .extra_temps = .{ + .{ .type = .usize, .kind = .{ .lazy_symbol = .{ .kind = .code, .ref = .src0 } } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .{ .cc = .nz }, .unused }, + .clobbers = .{ .eflags = true, .caller_preserved = .zigcc }, + .each = .{ .once = &.{ + .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, + .{ ._, ._, .@"test", .src0p, .src0p, ._, ._ }, + } }, + }, .{ + .required_features = .{ .sse, null, null, null }, + .src_constraints = .{ .{ .int = .gpr }, .any, .any }, + .patterns = &.{ + .{ .src = .{ .{ .to_param_gpr = .{ .cc = .zigcc, .index = 0 } }, .none, .none } }, + }, + .call_frame = .{ .alignment = .@"16" }, + .extra_temps = .{ + .{ .type = .usize, .kind = .{ .lazy_symbol = .{ .kind = .code, .ref = .src0 } } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .{ .cc = .nz }, .unused }, + .clobbers = .{ .eflags = true, .caller_preserved = .zigcc }, + .each = .{ .once = &.{ + .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, + .{ ._, ._, .@"test", .src0p, .src0p, ._, ._ }, + } }, + }, .{ + .src_constraints = .{ .{ .int = .gpr }, .any, .any }, + .patterns = &.{ + .{ .src = .{ .{ .to_param_gpr = .{ .cc = .zigcc, .index = 0 } }, .none, .none } }, + }, + .call_frame = .{ .alignment = .@"8" }, + .extra_temps = .{ + .{ .type = .usize, .kind = .{ .lazy_symbol = .{ .kind = .code, .ref = .src0 } } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .{ .cc = .nz }, .unused }, + .clobbers = .{ .eflags = true, .caller_preserved = .zigcc }, + .each = .{ .once = &.{ + .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, + .{ ._, ._, .@"test", .src0p, .src0p, ._, ._ }, + } }, + } }) catch |err| switch (err) { + error.SelectFailed => return cg.fail("failed to select {s} {} {}", .{ + @tagName(air_tag), + cg.typeOf(un_op).fmt(pt), + ops[0].tracking(cg), + }), + else => |e| return e, + }; + try res[0].finish(inst, &.{un_op}, &ops, cg); + }, + .tag_name => |air_tag| if (use_old) try cg.airTagName(inst, false) else { + const un_op = air_datas[@intFromEnum(inst)].un_op; + var ops = try cg.tempsFromOperands(inst, .{un_op}); + var res: [1]Temp = undefined; + cg.select(&res, &.{.slice_const_u8_sentinel_0}, &ops, comptime &.{ .{ + .required_features = .{ .avx, null, null, null }, + .src_constraints = .{ .{ .int = .gpr }, .any, .any }, + .patterns = &.{ + .{ .src = .{ .{ .to_param_gpr = .{ .cc = .zigcc, .index = 0 } }, .none, .none } }, + }, + .call_frame = .{ .alignment = .@"32" }, + .extra_temps = .{ + .{ .type = .usize, .kind = .{ .lazy_symbol = .{ .kind = .code, .ref = .src0 } } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .{ .ret_gpr = .{ .cc = .zigcc, .index = 1 } }, .unused }, + .clobbers = .{ .eflags = true, .caller_preserved = .zigcc }, + .each = .{ .once = &.{ + .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .sse, null, null, null }, + .src_constraints = .{ .{ .int = .gpr }, .any, .any }, + .patterns = &.{ + .{ .src = .{ .{ .to_param_gpr = .{ .cc = .zigcc, .index = 0 } }, .none, .none } }, + }, + .call_frame = .{ .alignment = .@"16" }, + .extra_temps = .{ + .{ .type = .usize, .kind = .{ .lazy_symbol = .{ .kind = .code, .ref = .src0 } } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .{ .ret_gpr = .{ .cc = .zigcc, .index = 1 } }, .unused }, + .clobbers = .{ .eflags = true, .caller_preserved = .zigcc }, + .each = .{ .once = &.{ + .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, + } }, + }, .{ + .src_constraints = .{ .{ .int = .gpr }, .any, .any }, + .patterns = &.{ + .{ .src = .{ .{ .to_param_gpr = .{ .cc = .zigcc, .index = 0 } }, .none, .none } }, + }, + .call_frame = .{ .alignment = .@"8" }, + .extra_temps = .{ + .{ .type = .usize, .kind = .{ .lazy_symbol = .{ .kind = .code, .ref = .src0 } } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .{ .ret_gpr = .{ .cc = .zigcc, .index = 1 } }, .unused }, + .clobbers = .{ .eflags = true, .caller_preserved = .zigcc }, + .each = .{ .once = &.{ + .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, + } }, + } }) catch |err| switch (err) { + error.SelectFailed => return cg.fail("failed to select {s} {} {}", .{ + @tagName(air_tag), + cg.typeOf(un_op).fmt(pt), + ops[0].tracking(cg), + }), + else => |e| return e, + }; + try ops[0].toPair(&res[0], cg); + try res[0].finish(inst, &.{un_op}, &ops, cg); + }, + .error_name => |air_tag| if (use_old) try cg.airErrorName(inst) else { + const un_op = air_datas[@intFromEnum(inst)].un_op; + var ops = try cg.tempsFromOperands(inst, .{un_op}); + var res: [2]Temp = undefined; + cg.select(&res, &.{ .slice_const_u8_sentinel_0, .usize }, &ops, comptime &.{ .{ + .src_constraints = .{ .{ .int = .byte }, .any, .any }, + .patterns = &.{ + .{ .src = .{ .mem, .none, .none } }, + .{ .src = .{ .to_gpr, .none, .none } }, + }, + .extra_temps = .{ + .{ .type = .anyerror, .kind = .{ .lazy_symbol = .{ .kind = .const_data } } }, + .{ .type = .u32, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .{ .rc = .general_purpose }, .{ .rc = .general_purpose } }, + .each = .{ .once = &.{ + .{ ._, ._, .movzx, .tmp1d, .src0b, ._, ._ }, + .{ ._, ._, .lea, .dst0p, .lea(.tmp0), ._, ._ }, + .{ ._, ._, .mov, .dst1d, .leasid(.dst0d, .@"4", .tmp1, (2 - 1) * 4), ._, ._ }, + .{ ._, ._, .mov, .tmp1d, .leasid(.dst0d, .@"4", .tmp1, (1 - 1) * 4), ._, ._ }, + .{ ._, ._, .lea, .dst0p, .leai(.dst0, .tmp1), ._, ._ }, + .{ ._, ._, .not, .tmp1d, ._, ._, ._ }, + .{ ._, ._, .lea, .dst1d, .leai(.dst1, .tmp1), ._, ._ }, + } }, + }, .{ + .src_constraints = .{ .{ .int = .word }, .any, .any }, + .patterns = &.{ + .{ .src = .{ .mem, .none, .none } }, + .{ .src = .{ .to_gpr, .none, .none } }, + }, + .extra_temps = .{ + .{ .type = .anyerror, .kind = .{ .lazy_symbol = .{ .kind = .const_data } } }, + .{ .type = .u32, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .{ .rc = .general_purpose }, .{ .rc = .general_purpose } }, + .each = .{ .once = &.{ + .{ ._, ._, .movzx, .tmp1d, .src0w, ._, ._ }, + .{ ._, ._, .lea, .dst0p, .lea(.tmp0), ._, ._ }, + .{ ._, ._, .mov, .dst1d, .leasid(.dst0d, .@"4", .tmp1, (2 - 1) * 4), ._, ._ }, + .{ ._, ._, .mov, .tmp1d, .leasid(.dst0d, .@"4", .tmp1, (1 - 1) * 4), ._, ._ }, + .{ ._, ._, .lea, .dst0p, .leai(.dst0, .tmp1), ._, ._ }, + .{ ._, ._, .not, .tmp1d, ._, ._, ._ }, + .{ ._, ._, .lea, .dst1d, .leai(.dst1, .tmp1), ._, ._ }, + } }, + }, .{ + .src_constraints = .{ .{ .int = .dword }, .any, .any }, + .patterns = &.{ + .{ .src = .{ .mem, .none, .none } }, + .{ .src = .{ .to_gpr, .none, .none } }, + }, + .extra_temps = .{ + .{ .type = .anyerror, .kind = .{ .lazy_symbol = .{ .kind = .const_data } } }, + .{ .type = .u32, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .{ .rc = .general_purpose }, .{ .rc = .general_purpose } }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp1d, .src0d, ._, ._ }, + .{ ._, ._, .lea, .dst0p, .lea(.tmp0), ._, ._ }, + .{ ._, ._, .mov, .dst1d, .leasid(.dst0d, .@"4", .tmp1, (2 - 1) * 4), ._, ._ }, + .{ ._, ._, .mov, .tmp1d, .leasid(.dst0d, .@"4", .tmp1, (1 - 1) * 4), ._, ._ }, + .{ ._, ._, .lea, .dst0p, .leai(.dst0, .tmp1), ._, ._ }, + .{ ._, ._, .not, .tmp1d, ._, ._, ._ }, + .{ ._, ._, .lea, .dst1d, .leai(.dst1, .tmp1), ._, ._ }, + } }, + } }) catch |err| switch (err) { + error.SelectFailed => return cg.fail("failed to select {s} {} {}", .{ + @tagName(air_tag), + cg.typeOf(un_op).fmt(pt), + ops[0].tracking(cg), + }), + else => |e| return e, + }; + const orig_res = res; + try res[0].toPair(&res[1], cg); + for (&ops) |*op| for (orig_res) |orig_r| { + if (op.index != orig_r.index) continue; + op.* = res[0]; + break; + }; + try res[0].finish(inst, &.{un_op}, &ops, cg); + }, + .error_set_has_value => |air_tag| if (use_old) try cg.airErrorSetHasValue(inst) else { + const ty_op = air_datas[@intFromEnum(inst)].ty_op; + var ops = try cg.tempsFromOperands(inst, .{ty_op.operand}) ++ .{try cg.tempInit(ty_op.ty.toType(), .none)}; + var res: [1]Temp = undefined; + cg.select(&res, &.{.bool}, &ops, comptime &.{ .{ + .required_features = .{ .avx, null, null, null }, + .src_constraints = .{ .{ .int = .gpr }, .any, .any }, + .patterns = &.{ + .{ .src = .{ .{ .to_param_gpr = .{ .cc = .zigcc, .index = 0 } }, .none, .none } }, + }, + .call_frame = .{ .alignment = .@"32" }, + .extra_temps = .{ + .{ .type = .usize, .kind = .{ .lazy_symbol = .{ .kind = .code, .ref = .src1 } } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .{ .cc = .nz }, .unused }, + .clobbers = .{ .eflags = true, .caller_preserved = .zigcc }, + .each = .{ .once = &.{ + .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, + .{ ._, ._, .@"test", .src0d, .src0d, ._, ._ }, + } }, + }, .{ + .required_features = .{ .sse, null, null, null }, + .src_constraints = .{ .{ .int = .gpr }, .any, .any }, + .patterns = &.{ + .{ .src = .{ .{ .to_param_gpr = .{ .cc = .zigcc, .index = 0 } }, .none, .none } }, + }, + .call_frame = .{ .alignment = .@"16" }, + .extra_temps = .{ + .{ .type = .usize, .kind = .{ .lazy_symbol = .{ .kind = .code, .ref = .src1 } } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .{ .cc = .nz }, .unused }, + .clobbers = .{ .eflags = true, .caller_preserved = .zigcc }, + .each = .{ .once = &.{ + .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, + .{ ._, ._, .@"test", .src0d, .src0d, ._, ._ }, + } }, + }, .{ + .src_constraints = .{ .{ .int = .gpr }, .any, .any }, + .patterns = &.{ + .{ .src = .{ .{ .to_param_gpr = .{ .cc = .zigcc, .index = 0 } }, .none, .none } }, + }, + .call_frame = .{ .alignment = .@"8" }, + .extra_temps = .{ + .{ .type = .usize, .kind = .{ .lazy_symbol = .{ .kind = .code, .ref = .src1 } } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .{ .cc = .nz }, .unused }, + .clobbers = .{ .eflags = true, .caller_preserved = .zigcc }, + .each = .{ .once = &.{ + .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, + .{ ._, ._, .@"test", .src0d, .src0d, ._, ._ }, + } }, + } }) catch |err| switch (err) { + error.SelectFailed => return cg.fail("failed to select {s} {} {}", .{ + @tagName(air_tag), + ty_op.ty.toType().fmt(pt), + ops[0].tracking(cg), + }), + else => |e| return e, + }; + for (ops[1..]) |op| try op.die(cg); + try res[0].finish(inst, &.{ty_op.operand}, ops[0..1], cg); + }, .union_init => if (use_old) try cg.airUnionInit(inst) else { const ty_pl = air_datas[@intFromEnum(inst)].ty_pl; const extra = cg.air.extraData(Air.UnionInit, ty_pl.payload).data; @@ -66240,7 +70662,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ }, .{ ._, .v_ps, .cvtph2, .tmp0x, .src1q, ._, ._ }, @@ -66270,7 +70692,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, @@ -66303,7 +70725,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ }, .{ ._, .v_ps, .cvtph2, .tmp0x, .src1q, ._, ._ }, @@ -66339,7 +70761,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, .each = .{ .once = &.{ .{ ._, .v_ps, .cvtph2, .dst0y, .src0x, ._, ._ }, .{ ._, .v_ps, .cvtph2, .tmp0y, .src1x, ._, ._ }, @@ -66368,7 +70790,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, .{ .@"0:", .v_ps, .cvtph2, .tmp1y, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, @@ -66401,7 +70823,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -66436,7 +70858,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -66473,7 +70895,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -66511,7 +70933,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -66544,7 +70966,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mut_sse, .sse, .sse } }, .{ .src = .{ .sse, .mut_sse, .sse }, .commute = .{ 0, 1 } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{ .{ ._, .v_ss, .fmadd132, .dst0x, .src2x, .src1d, ._ }, } }, @@ -66561,7 +70983,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mut_sse, .sse, .sse } }, .{ .src = .{ .sse, .mut_sse, .sse }, .commute = .{ 0, 1 } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{ .{ ._, .v_ss, .fmadd213, .dst0x, .src1x, .src2d, ._ }, } }, @@ -66577,7 +70999,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_sse, .to_mut_sse }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_sse, .to_sse, .to_mut_sse } }, }, - .dst_temps = .{.{ .ref = .src2 }}, + .dst_temps = .{ .{ .ref = .src2 }, .unused }, .each = .{ .once = &.{ .{ ._, .v_ss, .fmadd231, .dst0x, .src0x, .src1d, ._ }, } }, @@ -66603,7 +71025,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, @@ -66621,7 +71043,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mut_sse, .sse, .sse } }, .{ .src = .{ .sse, .mut_sse, .sse }, .commute = .{ 0, 1 } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{ .{ ._, .v_ps, .fmadd132, .dst0x, .src2x, .src1x, ._ }, } }, @@ -66638,7 +71060,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mut_sse, .sse, .sse } }, .{ .src = .{ .sse, .mut_sse, .sse }, .commute = .{ 0, 1 } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{ .{ ._, .v_ps, .fmadd213, .dst0x, .src1x, .src2x, ._ }, } }, @@ -66654,7 +71076,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_sse, .to_mut_sse }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_sse, .to_sse, .to_mut_sse } }, }, - .dst_temps = .{.{ .ref = .src2 }}, + .dst_temps = .{ .{ .ref = .src2 }, .unused }, .each = .{ .once = &.{ .{ ._, .v_ps, .fmadd231, .dst0x, .src0x, .src1x, ._ }, } }, @@ -66671,7 +71093,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mut_sse, .sse, .sse } }, .{ .src = .{ .sse, .mut_sse, .sse }, .commute = .{ 0, 1 } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{ .{ ._, .v_ps, .fmadd132, .dst0y, .src2y, .src1y, ._ }, } }, @@ -66688,7 +71110,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mut_sse, .sse, .sse } }, .{ .src = .{ .sse, .mut_sse, .sse }, .commute = .{ 0, 1 } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{ .{ ._, .v_ps, .fmadd213, .dst0y, .src1y, .src2y, ._ }, } }, @@ -66704,7 +71126,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_sse, .to_mut_sse }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_sse, .to_sse, .to_mut_sse } }, }, - .dst_temps = .{.{ .ref = .src2 }}, + .dst_temps = .{ .{ .ref = .src2 }, .unused }, .each = .{ .once = &.{ .{ ._, .v_ps, .fmadd231, .dst0y, .src0y, .src1y, ._ }, } }, @@ -66729,7 +71151,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, .{ .@"0:", .v_ps, .mova, .tmp1y, .memia(.src0y, .tmp0, .add_unaligned_size), ._, ._ }, @@ -66761,7 +71183,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -66795,7 +71217,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -66820,7 +71242,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mut_sse, .sse, .sse } }, .{ .src = .{ .sse, .mut_sse, .sse }, .commute = .{ 0, 1 } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{ .{ ._, .v_sd, .fmadd132, .dst0x, .src2x, .src1q, ._ }, } }, @@ -66837,7 +71259,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mut_sse, .sse, .sse } }, .{ .src = .{ .sse, .mut_sse, .sse }, .commute = .{ 0, 1 } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{ .{ ._, .v_sd, .fmadd213, .dst0x, .src1x, .src2q, ._ }, } }, @@ -66853,7 +71275,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_sse, .to_mut_sse }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_sse, .to_sse, .to_mut_sse } }, }, - .dst_temps = .{.{ .ref = .src2 }}, + .dst_temps = .{ .{ .ref = .src2 }, .unused }, .each = .{ .once = &.{ .{ ._, .v_sd, .fmadd231, .dst0x, .src0x, .src1q, ._ }, } }, @@ -66879,7 +71301,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, @@ -66897,7 +71319,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mut_sse, .sse, .sse } }, .{ .src = .{ .sse, .mut_sse, .sse }, .commute = .{ 0, 1 } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{ .{ ._, .v_pd, .fmadd132, .dst0x, .src2x, .src1x, ._ }, } }, @@ -66914,7 +71336,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mut_sse, .sse, .sse } }, .{ .src = .{ .sse, .mut_sse, .sse }, .commute = .{ 0, 1 } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{ .{ ._, .v_pd, .fmadd213, .dst0x, .src1x, .src2x, ._ }, } }, @@ -66930,7 +71352,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_sse, .to_mut_sse }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_sse, .to_sse, .to_mut_sse } }, }, - .dst_temps = .{.{ .ref = .src2 }}, + .dst_temps = .{ .{ .ref = .src2 }, .unused }, .each = .{ .once = &.{ .{ ._, .v_pd, .fmadd231, .dst0x, .src0x, .src1x, ._ }, } }, @@ -66947,7 +71369,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mut_sse, .sse, .sse } }, .{ .src = .{ .sse, .mut_sse, .sse }, .commute = .{ 0, 1 } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{ .{ ._, .v_pd, .fmadd132, .dst0y, .src2y, .src1y, ._ }, } }, @@ -66964,7 +71386,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mut_sse, .sse, .sse } }, .{ .src = .{ .sse, .mut_sse, .sse }, .commute = .{ 0, 1 } }, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{ .{ ._, .v_pd, .fmadd213, .dst0y, .src1y, .src2y, ._ }, } }, @@ -66980,7 +71402,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .mem, .to_sse, .to_mut_sse }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_sse, .to_sse, .to_mut_sse } }, }, - .dst_temps = .{.{ .ref = .src2 }}, + .dst_temps = .{ .{ .ref = .src2 }, .unused }, .each = .{ .once = &.{ .{ ._, .v_pd, .fmadd231, .dst0y, .src0y, .src1y, ._ }, } }, @@ -67005,7 +71427,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, .{ .@"0:", .v_pd, .mova, .tmp1y, .memia(.src0y, .tmp0, .add_unaligned_size), ._, ._ }, @@ -67037,7 +71459,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -67071,7 +71493,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -67105,7 +71527,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -67142,7 +71564,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .reg = .st0 }}, + .dst_temps = .{ .{ .reg = .st0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._ps, .mova, .tmp0x, .mem(.src0x), ._, ._ }, @@ -67175,7 +71597,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -67213,7 +71635,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.{ .ref = .src0 }}, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, @@ -67240,7 +71662,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -67274,7 +71696,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -67308,7 +71730,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .unused, .unused, }, - .dst_temps = .{.mem}, + .dst_temps = .{ .mem, .unused }, .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, @@ -67343,12 +71765,86 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { ), cg); try ops[0].finish(inst, &.{extra.field_ptr}, &ops, cg); }, - - .is_named_enum_value => return cg.fail("TODO implement is_named_enum_value", .{}), - - .wasm_memory_size => unreachable, - .wasm_memory_grow => unreachable, - + .wasm_memory_size, .wasm_memory_grow => unreachable, + .cmp_lt_errors_len => |air_tag| if (use_old) try cg.airCmpLtErrorsLen(inst) else { + const un_op = air_datas[@intFromEnum(inst)].un_op; + var ops = try cg.tempsFromOperands(inst, .{un_op}); + var res: [1]Temp = undefined; + cg.select(&res, &.{.bool}, &ops, comptime &.{ .{ + .src_constraints = .{ .{ .int = .byte }, .any, .any }, + .patterns = &.{ + .{ .src = .{ .to_gpr, .none, .none } }, + }, + .extra_temps = .{ + .{ .type = .anyerror, .kind = .{ .lazy_symbol = .{ .kind = .const_data } } }, + .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .{ .cc = .b }, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .lea, .tmp1p, .lea(.tmp0), ._, ._ }, + .{ ._, ._, .cmp, .src0b, .lea(.tmp1b), ._, ._ }, + } }, + }, .{ + .src_constraints = .{ .{ .int = .word }, .any, .any }, + .patterns = &.{ + .{ .src = .{ .to_gpr, .none, .none } }, + }, + .extra_temps = .{ + .{ .type = .anyerror, .kind = .{ .lazy_symbol = .{ .kind = .const_data } } }, + .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .{ .cc = .b }, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .lea, .tmp1p, .lea(.tmp0), ._, ._ }, + .{ ._, ._, .cmp, .src0w, .lea(.tmp1w), ._, ._ }, + } }, + }, .{ + .src_constraints = .{ .{ .int = .dword }, .any, .any }, + .patterns = &.{ + .{ .src = .{ .to_gpr, .none, .none } }, + }, + .extra_temps = .{ + .{ .type = .anyerror, .kind = .{ .lazy_symbol = .{ .kind = .const_data } } }, + .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .{ .cc = .b }, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .lea, .tmp1p, .lea(.tmp0), ._, ._ }, + .{ ._, ._, .cmp, .src0d, .lea(.tmp1d), ._, ._ }, + } }, + } }) catch |err| switch (err) { + error.SelectFailed => return cg.fail("failed to select {s} {}", .{ + @tagName(air_tag), + ops[0].tracking(cg), + }), + else => |e| return e, + }; + try res[0].finish(inst, &.{un_op}, &ops, cg); + }, .err_return_trace => { const ert: Temp = .{ .index = err_ret_trace_index }; try ert.finish(inst, &.{}, &.{}, cg); @@ -67372,13 +71868,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .err_ret_trace => unreachable, } }, - .addrspace_cast => { const ty_op = air_datas[@intFromEnum(inst)].ty_op; const ops = try cg.tempsFromOperands(inst, .{ty_op.operand}); try ops[0].finish(inst, &.{ty_op.operand}, &ops, cg); }, - .save_err_return_trace_index => { const ty_pl = air_datas[@intFromEnum(inst)].ty_pl; const agg_ty = ty_pl.ty.toType(); @@ -67388,17 +71882,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { try ert.die(cg); try res.finish(inst, &.{}, &.{}, cg); }, - .vector_store_elem => return cg.fail("TODO implement vector_store_elem", .{}), - .c_va_arg => try cg.airVaArg(inst), .c_va_copy => try cg.airVaCopy(inst), .c_va_end => try cg.airVaEnd(inst), .c_va_start => try cg.airVaStart(inst), - - .work_item_id => unreachable, - .work_group_size => unreachable, - .work_group_id => unreachable, + .work_item_id, .work_group_size, .work_group_id => unreachable, } try cg.resetTemps(); cg.checkInvariantsAfterAirInst(); @@ -67410,8 +71899,8 @@ fn genLazy(self: *CodeGen, lazy_sym: link.File.LazySymbol) InnerError!void { const pt = self.pt; const zcu = pt.zcu; const ip = &zcu.intern_pool; - switch (Type.fromInterned(lazy_sym.ty).zigTypeTag(zcu)) { - .@"enum" => { + switch (ip.indexToKey(lazy_sym.ty)) { + .enum_type => { const enum_ty: Type = .fromInterned(lazy_sym.ty); wip_mir_log.debug("{}.@tagName:", .{enum_ty.fmt(pt)}); @@ -67419,40 +71908,38 @@ fn genLazy(self: *CodeGen, lazy_sym: link.File.LazySymbol) InnerError!void { const param_locks = self.register_manager.lockRegsAssumeUnused(2, param_regs[0..2].*); defer for (param_locks) |lock| self.register_manager.unlockReg(lock); - const ret_reg = param_regs[0]; - const enum_mcv = MCValue{ .register = param_regs[1] }; + const ret_mcv: MCValue = .{ .register_pair = param_regs[0..2].* }; + const enum_mcv: MCValue = .{ .register = param_regs[0] }; const data_reg = try self.register_manager.allocReg(null, abi.RegisterClass.gp); const data_lock = self.register_manager.lockRegAssumeUnused(data_reg); defer self.register_manager.unlockReg(data_lock); - try self.genLazySymbolRef(.lea, data_reg, .{ .kind = .const_data, .ty = enum_ty.toIntern() }); + try self.genLazySymbolRef(.lea, data_reg, .{ .kind = .const_data, .ty = lazy_sym.ty }); var data_off: i32 = 0; - const tag_names = enum_ty.enumFields(zcu); - for (0..enum_ty.enumFieldCount(zcu)) |tag_index| { - var arg_temp = try self.tempInit(enum_ty, enum_mcv); + const tag_names = ip.loadEnumType(lazy_sym.ty).names; + for (0..tag_names.len) |tag_index| { + var enum_temp = try self.tempInit(enum_ty, enum_mcv); const tag_name_len = tag_names.get(ip)[tag_index].length(ip); - const tag_val = try pt.enumValueFieldIndex(enum_ty, @intCast(tag_index)); - var tag_temp = try self.tempFromValue(tag_val); - const cc_temp = arg_temp.cmpInts(.neq, &tag_temp, self) catch |err| switch (err) { + var tag_temp = try self.tempFromValue(try pt.enumValueFieldIndex(enum_ty, @intCast(tag_index))); + const cc_temp = enum_temp.cmpInts(.neq, &tag_temp, self) catch |err| switch (err) { error.SelectFailed => unreachable, else => |e| return e, }; - try arg_temp.die(self); + try enum_temp.die(self); try tag_temp.die(self); const skip_reloc = try self.asmJccReloc(cc_temp.tracking(self).short.eflags, undefined); try cc_temp.die(self); try self.resetTemps(); - try self.genSetMem( - .{ .reg = ret_reg }, - 0, + try self.genSetReg( + ret_mcv.register_pair[0], .usize, .{ .register_offset = .{ .reg = data_reg, .off = data_off } }, .{}, ); - try self.genSetMem(.{ .reg = ret_reg }, 8, .usize, .{ .immediate = tag_name_len }, .{}); + try self.genSetReg(ret_mcv.register_pair[1], .usize, .{ .immediate = tag_name_len }, .{}); try self.asmOpOnly(.{ ._, .ret }); self.performReloc(skip_reloc); @@ -67460,7 +71947,49 @@ fn genLazy(self: *CodeGen, lazy_sym: link.File.LazySymbol) InnerError!void { data_off += @intCast(tag_name_len + 1); } - try self.asmOpOnly(.{ ._2, .ud }); + try self.genSetReg(ret_mcv.register_pair[0], .usize, .{ .immediate = 0 }, .{}); + try self.asmOpOnly(.{ ._, .ret }); + }, + .error_set_type => |error_set_type| { + const err_ty: Type = .fromInterned(lazy_sym.ty); + wip_mir_log.debug("{}.@errorCast:", .{err_ty.fmt(pt)}); + + const param_regs = abi.getCAbiIntParamRegs(.auto); + const param_locks = self.register_manager.lockRegsAssumeUnused(2, param_regs[0..2].*); + defer for (param_locks) |lock| self.register_manager.unlockReg(lock); + + const ret_mcv: MCValue = .{ .register = param_regs[0] }; + const err_mcv: MCValue = .{ .register = param_regs[0] }; + + const ExpectedContents = [32]Mir.Inst.Index; + var stack align(@max(@alignOf(ExpectedContents), @alignOf(std.heap.StackFallbackAllocator(0)))) = + std.heap.stackFallback(@sizeOf(ExpectedContents), self.gpa); + const allocator = stack.get(); + + const relocs = try allocator.alloc(Mir.Inst.Index, error_set_type.names.len); + defer allocator.free(relocs); + + for (0.., relocs) |tag_index, *reloc| { + var err_temp = try self.tempInit(err_ty, err_mcv); + + var tag_temp = try self.tempInit(.anyerror, .{ + .immediate = ip.getErrorValueIfExists(error_set_type.names.get(ip)[tag_index]).?, + }); + const cc_temp = err_temp.cmpInts(.eq, &tag_temp, self) catch |err| switch (err) { + error.SelectFailed => unreachable, + else => |e| return e, + }; + try err_temp.die(self); + try tag_temp.die(self); + reloc.* = try self.asmJccReloc(cc_temp.tracking(self).short.eflags, undefined); + try cc_temp.die(self); + try self.resetTemps(); + } + + try self.genCopy(.usize, ret_mcv, .{ .immediate = 0 }, .{}); + for (relocs) |reloc| self.performReloc(reloc); + assert(ret_mcv.register == err_mcv.register); + try self.asmOpOnly(.{ ._, .ret }); }, else => return self.fail( "TODO implement {s} for {}", @@ -70348,7 +74877,7 @@ fn airUnwrapErrUnionErr(self: *CodeGen, inst: Air.Inst.Index) !void { } if (!payload_ty.hasRuntimeBitsIgnoreComptime(zcu)) { - break :result operand; + break :result try self.copyToRegisterWithInstTracking(inst, err_union_ty, operand); } const err_off = codegen.errUnionErrorOffset(payload_ty, zcu); @@ -70483,7 +75012,7 @@ fn airErrUnionPayloadPtrSet(self: *CodeGen, inst: Air.Inst.Index) !void { registerAlias(dst_reg, dst_abi_size), .{ .base = .{ .reg = src_reg }, - .mod = .{ .rm = .{ .size = .qword, .disp = pl_off } }, + .mod = .{ .rm = .{ .disp = pl_off } }, }, ); break :result .{ .register = dst_reg }; @@ -70746,7 +75275,7 @@ fn airPtrSliceLenPtr(self: *CodeGen, inst: Air.Inst.Index) !void { registerAlias(dst_reg, dst_abi_size), .{ .base = .{ .reg = src_reg }, - .mod = .{ .rm = .{ .size = .qword, .disp = 8 } }, + .mod = .{ .rm = .{ .disp = 8 } }, }, ); @@ -71000,7 +75529,7 @@ fn airArrayElemVal(self: *CodeGen, inst: Air.Inst.Index) !void { try self.asmRegisterMemory( .{ ._, .lea }, addr_reg, - .{ .base = .{ .frame = frame_index }, .mod = .{ .rm = .{ .size = .qword } } }, + .{ .base = .{ .frame = frame_index } }, ); }, .load_frame => |frame_addr| try self.asmRegisterMemory( @@ -71008,7 +75537,7 @@ fn airArrayElemVal(self: *CodeGen, inst: Air.Inst.Index) !void { addr_reg, .{ .base = .{ .frame = frame_addr.index }, - .mod = .{ .rm = .{ .size = .qword, .disp = frame_addr.off } }, + .mod = .{ .rm = .{ .disp = frame_addr.off } }, }, ), .memory, @@ -72017,7 +76546,6 @@ fn airBitReverse(self: *CodeGen, inst: Air.Inst.Index) !void { .{ .base = .{ .reg = dst.to64() }, .mod = .{ .rm = .{ - .size = .qword, .index = tmp.to64(), .scale = .@"4", } }, @@ -72044,7 +76572,6 @@ fn airBitReverse(self: *CodeGen, inst: Air.Inst.Index) !void { .{ .base = .{ .reg = tmp.to64() }, .mod = .{ .rm = .{ - .size = .qword, .index = dst.to64(), .scale = .@"2", } }, @@ -78848,7 +83375,7 @@ fn lowerSwitchBr( var cases_it = switch_br.iterateCases(); while (cases_it.next()) |case| { - var relocs = try allocator.alloc(Mir.Inst.Index, case.items.len + case.ranges.len); + const relocs = try allocator.alloc(Mir.Inst.Index, case.items.len + case.ranges.len); defer allocator.free(relocs); try self.spillEflagsIfOccupied(); @@ -80350,17 +84877,32 @@ fn genCopy(self: *CodeGen, ty: Type, dst_mcv: MCValue, src_mcv: MCValue, opts: C else => unreachable, }, dst_tag => |src_regs| { + var remaining: std.StaticBitSet(dst_regs.len) = .initFull(); var hazard_regs = src_regs; - for (dst_regs, &hazard_regs, 1..) |dst_reg, src_reg, hazard_index| { - const dst_id = dst_reg.id(); - if (dst_id == src_reg.id()) continue; - var mir_tag: Mir.Inst.FixedTag = .{ ._, .mov }; - for (hazard_regs[hazard_index..]) |*hazard_reg| { - if (dst_id != hazard_reg.id()) continue; - mir_tag = .{ ._g, .xch }; - hazard_reg.* = src_reg; + while (!remaining.eql(.initEmpty())) { + var remaining_it = remaining.iterator(.{}); + next: while (remaining_it.next()) |index| { + const dst_reg = dst_regs[index]; + const dst_id = dst_reg.id(); + const src_reg = hazard_regs[index]; + const src_id = src_reg.id(); + if (dst_id == src_id) { + remaining.unset(index); + continue; + } + var mir_tag: Mir.Inst.FixedTag = .{ ._, .mov }; + var hazard_it = remaining.iterator(.{}); + while (hazard_it.next()) |hazard_index| { + if (dst_id != hazard_regs[hazard_index].id()) continue; + for (dst_regs) |clobber_reg| { + if (src_id == clobber_reg.id()) break; + } else continue :next; + hazard_regs[hazard_index] = src_reg; + mir_tag = .{ ._g, .xch }; + } + remaining.unset(index); + try self.asmRegisterRegister(mir_tag, dst_reg.to64(), src_reg.to64()); } - try self.asmRegisterRegister(mir_tag, dst_reg.to64(), src_reg.to64()); } return; }, @@ -80876,7 +85418,6 @@ fn genSetReg( dst_reg.to64(), .{ .base = .{ .reloc = sym_off.sym_index }, - .mod = .{ .rm = .{ .size = .qword } }, }, ); if (sym_off.off != 0) try self.asmRegisterMemory( @@ -80884,10 +85425,7 @@ fn genSetReg( dst_reg.to64(), .{ .base = .{ .reg = dst_reg.to64() }, - .mod = .{ .rm = .{ - .size = .qword, - .disp = sym_off.off, - } }, + .mod = .{ .rm = .{ .disp = sym_off.off } }, }, ); }, @@ -81101,18 +85639,12 @@ fn genSetMem( const src_reg = registerAlias(reg_off.reg, abi_size); try self.asmRegisterMemory(.{ ._, .lea }, src_reg, .{ .base = .{ .reg = src_reg }, - .mod = .{ .rm = .{ - .size = .qword, - .disp = reg_off.off, - } }, + .mod = .{ .rm = .{ .disp = reg_off.off } }, }); try self.genSetMem(base, disp, ty, .{ .register = reg_off.reg }, opts); return self.asmRegisterMemory(.{ ._, .lea }, src_reg, .{ .base = .{ .reg = src_reg }, - .mod = .{ .rm = .{ - .size = .qword, - .disp = -reg_off.off, - } }, + .mod = .{ .rm = .{ .disp = -reg_off.off } }, }); }, else => |e| return e, @@ -81636,12 +86168,14 @@ fn airIntFromFloat(self: *CodeGen, inst: Air.Inst.Index) !void { fn airCmpxchg(self: *CodeGen, inst: Air.Inst.Index) !void { const pt = self.pt; + const zcu = pt.zcu; const ty_pl = self.air.instructions.items(.data)[@intFromEnum(inst)].ty_pl; const extra = self.air.extraData(Air.Cmpxchg, ty_pl.payload).data; + const dst_ty = self.typeOfIndex(inst); const ptr_ty = self.typeOf(extra.ptr); const val_ty = self.typeOf(extra.expected_value); - const val_abi_size: u32 = @intCast(val_ty.abiSize(pt.zcu)); + const val_abi_size: u32 = @intCast(val_ty.abiSize(zcu)); try self.spillRegisters(&.{ .rax, .rdx, .rbx, .rcx }); const regs_lock = self.register_manager.lockRegsAssumeUnused(4, .{ .rax, .rdx, .rbx, .rcx }); @@ -81699,6 +86233,14 @@ fn airCmpxchg(self: *CodeGen, inst: Air.Inst.Index) !void { defer if (ptr_lock) |lock| self.register_manager.unlockReg(lock); try self.spillEflagsIfOccupied(); + const null_reg = if (dst_ty.optionalReprIsPayload(zcu) and !self.liveness.isUnused(inst)) null_reg: { + const null_reg = try self.register_manager.allocReg(null, abi.RegisterClass.gp); + try self.asmRegisterRegister(.{ ._, .xor }, null_reg.to32(), null_reg.to32()); + break :null_reg null_reg; + } else null; + const null_lock = if (null_reg) |reg| self.register_manager.lockRegAssumeUnused(reg) else null; + defer if (null_lock) |lock| self.register_manager.unlockReg(lock); + if (val_abi_size <= 8) try self.asmMemoryRegister( .{ .@"lock _", .cmpxchg }, ptr_mem, @@ -81708,7 +86250,14 @@ fn airCmpxchg(self: *CodeGen, inst: Air.Inst.Index) !void { const result: MCValue = result: { if (self.liveness.isUnused(inst)) break :result .unreach; + if (null_reg) |reg| try self.asmCmovccRegisterRegister( + .e, + registerAlias(.rax, val_abi_size), + registerAlias(reg, val_abi_size), + ); + if (val_abi_size <= 8) { + if (null_reg) |_| break :result .{ .register = .rax }; self.eflags_inst = inst; break :result .{ .register_overflow = .{ .reg = .rax, .eflags = .ne } }; } @@ -81716,7 +86265,7 @@ fn airCmpxchg(self: *CodeGen, inst: Air.Inst.Index) !void { const dst_mcv = try self.allocRegOrMem(inst, false); try self.genCopy(.usize, dst_mcv, .{ .register = .rax }, .{}); try self.genCopy(.usize, dst_mcv.address().offset(8).deref(), .{ .register = .rdx }, .{}); - try self.genCopy(.bool, dst_mcv.address().offset(16).deref(), .{ .eflags = .ne }, .{}); + if (null_reg == null) try self.genCopy(.bool, dst_mcv.address().offset(16).deref(), .{ .eflags = .ne }, .{}); break :result dst_mcv; }; return self.finishAir(inst, result, .{ extra.ptr, extra.expected_value, extra.new_value }); @@ -82351,7 +86900,7 @@ fn airMemcpy(self: *CodeGen, inst: Air.Inst.Index) !void { return self.finishAir(inst, .unreach, .{ bin_op.lhs, bin_op.rhs, .none }); } -fn airTagName(self: *CodeGen, inst: Air.Inst.Index) !void { +fn airTagName(self: *CodeGen, inst: Air.Inst.Index, only_safety: bool) !void { const pt = self.pt; const zcu = pt.zcu; const un_op = self.air.instructions.items(.data)[@intFromEnum(inst)].un_op; @@ -82373,25 +86922,26 @@ fn airTagName(self: *CodeGen, inst: Air.Inst.Index) !void { stack_frame_align.* = stack_frame_align.max(needed_call_frame.abi_align); } + var param_gpr = abi.getCAbiIntParamRegs(.auto); const err_ret_trace_reg = if (zcu.comp.config.any_error_tracing) err_ret_trace_reg: { - const param_gpr = abi.getCAbiIntParamRegs(.auto); + defer param_gpr = param_gpr[0 .. param_gpr.len - 1]; break :err_ret_trace_reg param_gpr[param_gpr.len - 1]; } else .none; try self.spillEflagsIfOccupied(); try self.spillCallerPreservedRegs(.auto, err_ret_trace_reg); - const param_regs = abi.getCAbiIntParamRegs(.auto); - - const dst_mcv = try self.allocRegOrMem(inst, false); - try self.genSetReg(param_regs[0], .usize, dst_mcv.address(), .{}); - const operand = try self.resolveInst(un_op); - try self.genSetReg(param_regs[1], enum_ty, operand, .{}); + try self.genSetReg(param_gpr[0], enum_ty, operand, .{}); const enum_lazy_sym: link.File.LazySymbol = .{ .kind = .code, .ty = enum_ty.toIntern() }; try self.genLazySymbolRef(.call, abi.getCAbiLinkerScratchReg(.auto), enum_lazy_sym); + const tag_name_regs = param_gpr[0..2].*; + const dst_mcv: MCValue = if (only_safety) result: { + try self.asmRegisterRegister(.{ ._, .@"test" }, tag_name_regs[0].to64(), tag_name_regs[0].to64()); + break :result .{ .eflags = .nz }; + } else .{ .register_pair = tag_name_regs }; return self.finishAir(inst, dst_mcv, .{ un_op, .none, .none }); } @@ -82452,10 +87002,7 @@ fn airErrorName(self: *CodeGen, inst: Air.Inst.Index) !void { start_reg.to64(), .{ .base = .{ .reg = addr_reg.to64() }, - .mod = .{ .rm = .{ - .size = .dword, - .index = start_reg.to64(), - } }, + .mod = .{ .rm = .{ .index = start_reg.to64() } }, }, ); try self.asmRegisterMemory( @@ -82463,10 +87010,7 @@ fn airErrorName(self: *CodeGen, inst: Air.Inst.Index) !void { end_reg.to32(), .{ .base = .{ .reg = end_reg.to64() }, - .mod = .{ .rm = .{ - .size = .byte, - .disp = -1, - } }, + .mod = .{ .rm = .{ .disp = -1 } }, }, ); @@ -82497,6 +87041,50 @@ fn airErrorName(self: *CodeGen, inst: Air.Inst.Index) !void { return self.finishAir(inst, dst_mcv, .{ un_op, .none, .none }); } +fn airErrorSetHasValue(self: *CodeGen, inst: Air.Inst.Index) !void { + const pt = self.pt; + const zcu = pt.zcu; + const ty_op = self.air.instructions.items(.data)[@intFromEnum(inst)].ty_op; + const inst_ty = self.typeOfIndex(inst); + const err_ty = ty_op.ty.toType(); + + // We need a properly aligned and sized call frame to be able to call this function. + { + const needed_call_frame: FrameAlloc = .init(.{ + .size = inst_ty.abiSize(zcu), + .alignment = inst_ty.abiAlignment(zcu), + }); + const frame_allocs_slice = self.frame_allocs.slice(); + const stack_frame_size = + &frame_allocs_slice.items(.abi_size)[@intFromEnum(FrameIndex.call_frame)]; + stack_frame_size.* = @max(stack_frame_size.*, needed_call_frame.abi_size); + const stack_frame_align = + &frame_allocs_slice.items(.abi_align)[@intFromEnum(FrameIndex.call_frame)]; + stack_frame_align.* = stack_frame_align.max(needed_call_frame.abi_align); + } + + var param_gpr = abi.getCAbiIntParamRegs(.auto); + const err_ret_trace_reg = if (zcu.comp.config.any_error_tracing) err_ret_trace_reg: { + defer param_gpr = param_gpr[0 .. param_gpr.len - 1]; + break :err_ret_trace_reg param_gpr[param_gpr.len - 1]; + } else .none; + + try self.spillEflagsIfOccupied(); + try self.spillCallerPreservedRegs(.auto, err_ret_trace_reg); + + const operand = try self.resolveInst(ty_op.operand); + try self.genSetReg(param_gpr[0], err_ty, operand, .{}); + + const enum_lazy_sym: link.File.LazySymbol = .{ .kind = .code, .ty = err_ty.toIntern() }; + try self.genLazySymbolRef(.call, abi.getCAbiLinkerScratchReg(.auto), enum_lazy_sym); + + const res_reg = param_gpr[0]; + try self.asmRegisterRegister(.{ ._, .@"test" }, res_reg.to32(), res_reg.to32()); + + const dst_mcv: MCValue = .{ .eflags = .nz }; + return self.finishAir(inst, dst_mcv, .{ ty_op.operand, .none, .none }); +} + fn airSplat(self: *CodeGen, inst: Air.Inst.Index) !void { const pt = self.pt; const zcu = pt.zcu; @@ -84598,17 +89186,11 @@ fn airVaArg(self: *CodeGen, inst: Air.Inst.Index) !void { try self.genSetReg(addr_reg, ptr_anyopaque_ty, reg_save_area, .{}); if (!unused) try self.asmRegisterMemory(.{ ._, .lea }, addr_reg, .{ .base = .{ .reg = addr_reg }, - .mod = .{ .rm = .{ - .size = .qword, - .index = offset_reg.to64(), - } }, + .mod = .{ .rm = .{ .index = offset_reg.to64() } }, }); try self.asmRegisterMemory(.{ ._, .lea }, offset_reg, .{ .base = .{ .reg = offset_reg.to64() }, - .mod = .{ .rm = .{ - .size = .qword, - .disp = 8, - } }, + .mod = .{ .rm = .{ .disp = 8 } }, }); try self.genCopy(.c_uint, gp_offset, .{ .register = offset_reg }, .{}); const done_reloc = try self.asmJmpReloc(undefined); @@ -84617,10 +89199,7 @@ fn airVaArg(self: *CodeGen, inst: Air.Inst.Index) !void { try self.genSetReg(addr_reg, ptr_anyopaque_ty, overflow_arg_area, .{}); try self.asmRegisterMemory(.{ ._, .lea }, offset_reg.to64(), .{ .base = .{ .reg = addr_reg }, - .mod = .{ .rm = .{ - .size = .qword, - .disp = @intCast(@max(promote_ty.abiSize(zcu), 8)), - } }, + .mod = .{ .rm = .{ .disp = @intCast(@max(promote_ty.abiSize(zcu), 8)) } }, }); try self.genCopy( ptr_anyopaque_ty, @@ -84646,17 +89225,11 @@ fn airVaArg(self: *CodeGen, inst: Air.Inst.Index) !void { try self.genSetReg(addr_reg, ptr_anyopaque_ty, reg_save_area, .{}); if (!unused) try self.asmRegisterMemory(.{ ._, .lea }, addr_reg, .{ .base = .{ .reg = addr_reg }, - .mod = .{ .rm = .{ - .size = .qword, - .index = offset_reg.to64(), - } }, + .mod = .{ .rm = .{ .index = offset_reg.to64() } }, }); try self.asmRegisterMemory(.{ ._, .lea }, offset_reg, .{ .base = .{ .reg = offset_reg.to64() }, - .mod = .{ .rm = .{ - .size = .qword, - .disp = 16, - } }, + .mod = .{ .rm = .{ .disp = 16 } }, }); try self.genCopy(.c_uint, fp_offset, .{ .register = offset_reg }, .{}); const done_reloc = try self.asmJmpReloc(undefined); @@ -84665,10 +89238,7 @@ fn airVaArg(self: *CodeGen, inst: Air.Inst.Index) !void { try self.genSetReg(addr_reg, ptr_anyopaque_ty, overflow_arg_area, .{}); try self.asmRegisterMemory(.{ ._, .lea }, offset_reg.to64(), .{ .base = .{ .reg = addr_reg }, - .mod = .{ .rm = .{ - .size = .qword, - .disp = @intCast(@max(promote_ty.abiSize(zcu), 8)), - } }, + .mod = .{ .rm = .{ .disp = @intCast(@max(promote_ty.abiSize(zcu), 8)) } }, }); try self.genCopy( ptr_anyopaque_ty, @@ -85728,10 +90298,7 @@ const Temp = struct { new_temp_index.tracking(cg).* = .init(.{ .register = new_reg }); try cg.asmRegisterMemory(.{ ._, .lea }, new_reg.to64(), .{ .base = .{ .reg = reg.to64() }, - .mod = .{ .rm = .{ - .size = .qword, - .disp = off, - } }, + .mod = .{ .rm = .{ .disp = off } }, }); }, .register_offset => |reg_off| { @@ -85740,10 +90307,7 @@ const Temp = struct { new_temp_index.tracking(cg).* = .init(.{ .register = new_reg }); try cg.asmRegisterMemory(.{ ._, .lea }, new_reg.to64(), .{ .base = .{ .reg = reg_off.reg.to64() }, - .mod = .{ .rm = .{ - .size = .qword, - .disp = reg_off.off + off, - } }, + .mod = .{ .rm = .{ .disp = reg_off.off + off } }, }); }, .lea_symbol => |sym_off| new_temp_index.tracking(cg).* = .init(.{ .lea_symbol = .{ @@ -85850,10 +90414,7 @@ const Temp = struct { new_temp_index.tracking(cg).* = .init(.{ .register = new_reg }); try cg.asmRegisterMemory(.{ ._, .lea }, new_reg.to64(), .{ .base = .{ .reg = reg_off.reg.to64() }, - .mod = .{ .rm = .{ - .size = .qword, - .disp = reg_off.off + @as(u31, limb_index) * 8, - } }, + .mod = .{ .rm = .{ .disp = reg_off.off + @as(u31, limb_index) * 8 } }, }); }, .load_symbol => |sym_off| { @@ -85969,7 +90530,7 @@ const Temp = struct { try cg.register_manager.getReg(new_reg, new_temp_index.toIndex()); cg.temp_type[@intFromEnum(new_temp_index)] = ty; new_temp_index.tracking(cg).* = .init(.{ .register = new_reg }); - while (try temp.toBase(cg)) {} + while (try temp.toBase(false, cg)) {} try temp.readTo(ty, .{ .register = new_reg }, .{}, cg); try temp.die(cg); temp.* = .{ .index = new_temp_index.toIndex() }; @@ -85992,7 +90553,7 @@ const Temp = struct { for (new_regs) |new_reg| try cg.register_manager.getReg(new_reg, new_temp_index.toIndex()); cg.temp_type[@intFromEnum(new_temp_index)] = ty; new_temp_index.tracking(cg).* = .init(.{ .register_pair = new_regs }); - while (try temp.toBase(cg)) {} + while (try temp.toBase(false, cg)) {} for (new_regs, 0..) |new_reg, reg_index| try temp.readTo( .usize, .{ .register = new_reg }, @@ -86093,9 +90654,9 @@ const Temp = struct { } } - fn toMemory(temp: *Temp, cg: *CodeGen) InnerError!bool { + fn toMemory(temp: *Temp, mut: bool, cg: *CodeGen) InnerError!bool { const temp_tracking = temp.tracking(cg); - if (temp_tracking.short.isMemory()) return false; + if ((!mut or temp.isMut(cg)) and temp_tracking.short.isMemory()) return false; const new_temp_index = cg.next_temp_index; const ty = temp.typeOf(cg); cg.temp_type[@intFromEnum(new_temp_index)] = ty; @@ -86109,10 +90670,10 @@ const Temp = struct { } // hack around linker relocation bugs - fn toBase(temp: *Temp, cg: *CodeGen) InnerError!bool { + fn toBase(temp: *Temp, mut: bool, cg: *CodeGen) InnerError!bool { const temp_tracking = temp.tracking(cg); - if (temp_tracking.short.isBase()) return false; - if (try temp.toMemory(cg)) return true; + if ((!mut or temp.isMut(cg)) and temp_tracking.short.isBase()) return false; + if (try temp.toMemory(mut, cg)) return true; const new_temp_index = cg.next_temp_index; cg.temp_type[@intFromEnum(new_temp_index)] = temp.typeOf(cg); const new_reg = @@ -86267,7 +90828,7 @@ const Temp = struct { fn read(src: *Temp, val_ty: Type, opts: AccessOptions, cg: *CodeGen) InnerError!Temp { var val = try cg.tempAlloc(val_ty); - while (try src.toBase(cg)) {} + while (try src.toBase(false, cg)) {} try src.readTo(val_ty, val.tracking(cg).short, opts, cg); return val; } @@ -86308,8 +90869,8 @@ const Temp = struct { fn write(dst: *Temp, val: *Temp, opts: AccessOptions, cg: *CodeGen) InnerError!void { const val_ty = val.typeOf(cg); - while (try dst.toBase(cg)) {} - val_to_gpr: while (true) : (while (try dst.toBase(cg) or + while (try dst.toBase(false, cg)) {} + val_to_gpr: while (true) : (while (try dst.toBase(false, cg) or try val.toRegClass(false, .general_purpose, cg)) {}) { const val_mcv = val.tracking(cg).short; @@ -86540,7 +91101,7 @@ const Temp = struct { .{ .src = .{ .imm8, .to_gpr, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .mem, .to_gpr, .none }, .commute = .{ 0, 1 } }, }, - .dst_temps = .{.{ .cc = .g }}, + .dst_temps = .{ .{ .cc = .g }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .cmp, .src0b, .src1b, ._, ._ }, @@ -86553,7 +91114,7 @@ const Temp = struct { .{ .src = .{ .to_gpr, .mem, .none } }, .{ .src = .{ .to_gpr, .to_gpr, .none } }, }, - .dst_temps = .{.{ .cc = .l }}, + .dst_temps = .{ .{ .cc = .l }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .cmp, .src0b, .src1b, ._, ._ }, @@ -86565,7 +91126,7 @@ const Temp = struct { .{ .src = .{ .imm8, .to_gpr, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .mem, .to_gpr, .none }, .commute = .{ 0, 1 } }, }, - .dst_temps = .{.{ .cc = .a }}, + .dst_temps = .{ .{ .cc = .a }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .cmp, .src0b, .src1b, ._, ._ }, @@ -86578,7 +91139,7 @@ const Temp = struct { .{ .src = .{ .to_gpr, .mem, .none } }, .{ .src = .{ .to_gpr, .to_gpr, .none } }, }, - .dst_temps = .{.{ .cc = .b }}, + .dst_temps = .{ .{ .cc = .b }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .cmp, .src0b, .src1b, ._, ._ }, @@ -86590,7 +91151,7 @@ const Temp = struct { .{ .src = .{ .imm16, .to_gpr, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .mem, .to_gpr, .none }, .commute = .{ 0, 1 } }, }, - .dst_temps = .{.{ .cc = .g }}, + .dst_temps = .{ .{ .cc = .g }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .cmp, .src0w, .src1w, ._, ._ }, @@ -86603,7 +91164,7 @@ const Temp = struct { .{ .src = .{ .to_gpr, .mem, .none } }, .{ .src = .{ .to_gpr, .to_gpr, .none } }, }, - .dst_temps = .{.{ .cc = .l }}, + .dst_temps = .{ .{ .cc = .l }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .cmp, .src0w, .src1w, ._, ._ }, @@ -86615,7 +91176,7 @@ const Temp = struct { .{ .src = .{ .imm16, .to_gpr, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .mem, .to_gpr, .none }, .commute = .{ 0, 1 } }, }, - .dst_temps = .{.{ .cc = .a }}, + .dst_temps = .{ .{ .cc = .a }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .cmp, .src0w, .src1w, ._, ._ }, @@ -86628,7 +91189,7 @@ const Temp = struct { .{ .src = .{ .to_gpr, .mem, .none } }, .{ .src = .{ .to_gpr, .to_gpr, .none } }, }, - .dst_temps = .{.{ .cc = .b }}, + .dst_temps = .{ .{ .cc = .b }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .cmp, .src0w, .src1w, ._, ._ }, @@ -86640,7 +91201,7 @@ const Temp = struct { .{ .src = .{ .imm32, .to_gpr, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .mem, .to_gpr, .none }, .commute = .{ 0, 1 } }, }, - .dst_temps = .{.{ .cc = .g }}, + .dst_temps = .{ .{ .cc = .g }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .cmp, .src0d, .src1d, ._, ._ }, @@ -86653,7 +91214,7 @@ const Temp = struct { .{ .src = .{ .to_gpr, .mem, .none } }, .{ .src = .{ .to_gpr, .to_gpr, .none } }, }, - .dst_temps = .{.{ .cc = .l }}, + .dst_temps = .{ .{ .cc = .l }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .cmp, .src0d, .src1d, ._, ._ }, @@ -86665,7 +91226,7 @@ const Temp = struct { .{ .src = .{ .imm32, .to_gpr, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .mem, .to_gpr, .none }, .commute = .{ 0, 1 } }, }, - .dst_temps = .{.{ .cc = .a }}, + .dst_temps = .{ .{ .cc = .a }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .cmp, .src0d, .src1d, ._, ._ }, @@ -86678,7 +91239,7 @@ const Temp = struct { .{ .src = .{ .to_gpr, .mem, .none } }, .{ .src = .{ .to_gpr, .to_gpr, .none } }, }, - .dst_temps = .{.{ .cc = .b }}, + .dst_temps = .{ .{ .cc = .b }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .cmp, .src0d, .src1d, ._, ._ }, @@ -86691,7 +91252,7 @@ const Temp = struct { .{ .src = .{ .simm32, .to_gpr, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .mem, .to_gpr, .none }, .commute = .{ 0, 1 } }, }, - .dst_temps = .{.{ .cc = .g }}, + .dst_temps = .{ .{ .cc = .g }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .cmp, .src0q, .src1q, ._, ._ }, @@ -86705,7 +91266,7 @@ const Temp = struct { .{ .src = .{ .to_gpr, .mem, .none } }, .{ .src = .{ .to_gpr, .to_gpr, .none } }, }, - .dst_temps = .{.{ .cc = .l }}, + .dst_temps = .{ .{ .cc = .l }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .cmp, .src0q, .src1q, ._, ._ }, @@ -86718,7 +91279,7 @@ const Temp = struct { .{ .src = .{ .simm32, .to_gpr, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .mem, .to_gpr, .none }, .commute = .{ 0, 1 } }, }, - .dst_temps = .{.{ .cc = .a }}, + .dst_temps = .{ .{ .cc = .a }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .cmp, .src0q, .src1q, ._, ._ }, @@ -86732,7 +91293,7 @@ const Temp = struct { .{ .src = .{ .to_gpr, .mem, .none } }, .{ .src = .{ .to_gpr, .to_gpr, .none } }, }, - .dst_temps = .{.{ .cc = .b }}, + .dst_temps = .{ .{ .cc = .b }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .cmp, .src0q, .src1q, ._, ._ }, @@ -86758,7 +91319,7 @@ const Temp = struct { .unused, .unused, }, - .dst_temps = .{.{ .cc = .l }}, + .dst_temps = .{ .{ .cc = .l }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sia(1, .src0, .sub_size_div_8), ._, ._ }, @@ -86791,7 +91352,7 @@ const Temp = struct { .unused, .unused, }, - .dst_temps = .{.{ .cc = .b }}, + .dst_temps = .{ .{ .cc = .b }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size_div_8), ._, ._ }, @@ -86821,7 +91382,7 @@ const Temp = struct { .unused, .unused, }, - .dst_temps = .{.{ .cc = .l }}, + .dst_temps = .{ .{ .cc = .l }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sia(1, .src0, .sub_size_div_4), ._, ._ }, @@ -86853,7 +91414,7 @@ const Temp = struct { .unused, .unused, }, - .dst_temps = .{.{ .cc = .b }}, + .dst_temps = .{ .{ .cc = .b }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size_div_4), ._, ._ }, @@ -86878,7 +91439,7 @@ const Temp = struct { .{ .src = .{ .mem, .to_gpr, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_gpr, .to_gpr, .none } }, }, - .dst_temps = .{.{ .cc = .e }}, + .dst_temps = .{ .{ .cc = .e }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .cmp, .src0b, .src1b, ._, ._ }, @@ -86894,7 +91455,7 @@ const Temp = struct { .{ .src = .{ .mem, .to_gpr, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_gpr, .to_gpr, .none } }, }, - .dst_temps = .{.{ .cc = .e }}, + .dst_temps = .{ .{ .cc = .e }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .cmp, .src0w, .src1w, ._, ._ }, @@ -86910,7 +91471,7 @@ const Temp = struct { .{ .src = .{ .mem, .to_gpr, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_gpr, .to_gpr, .none } }, }, - .dst_temps = .{.{ .cc = .e }}, + .dst_temps = .{ .{ .cc = .e }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .cmp, .src0d, .src1d, ._, ._ }, @@ -86927,7 +91488,7 @@ const Temp = struct { .{ .src = .{ .mem, .to_gpr, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_gpr, .to_gpr, .none } }, }, - .dst_temps = .{.{ .cc = .e }}, + .dst_temps = .{ .{ .cc = .e }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .cmp, .src0q, .src1q, ._, ._ }, @@ -86951,7 +91512,7 @@ const Temp = struct { .unused, .unused, }, - .dst_temps = .{.{ .cc = .z }}, + .dst_temps = .{ .{ .cc = .z }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, .p_, .xor, .tmp1q, .tmp1q, ._, ._ }, @@ -86979,7 +91540,7 @@ const Temp = struct { .unused, .unused, }, - .dst_temps = .{.{ .cc = .z }}, + .dst_temps = .{ .{ .cc = .z }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, .vp_, .xor, .tmp0x, .src0x, .src1x, ._ }, @@ -86993,7 +91554,7 @@ const Temp = struct { .{ .src = .{ .mem, .to_mut_xmm, .none }, .commute = .{ 0, 1 } }, .{ .src = .{ .to_mut_xmm, .to_xmm, .none } }, }, - .dst_temps = .{.{ .cc = .z }}, + .dst_temps = .{ .{ .cc = .z }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, .p_, .xor, .src0x, .src1x, ._, ._ }, @@ -87018,7 +91579,7 @@ const Temp = struct { .unused, .unused, }, - .dst_temps = .{.{ .cc = .z }}, + .dst_temps = .{ .{ .cc = .z }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, .p_, .xor, .tmp1x, .tmp1x, ._, ._ }, @@ -87046,7 +91607,7 @@ const Temp = struct { .unused, .unused, }, - .dst_temps = .{.{ .cc = .z }}, + .dst_temps = .{ .{ .cc = .z }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, .p_, .xor, .tmp1x, .tmp1x, ._, ._ }, @@ -87074,7 +91635,7 @@ const Temp = struct { .unused, .unused, }, - .dst_temps = .{.{ .cc = .z }}, + .dst_temps = .{ .{ .cc = .z }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, .vp_, .xor, .tmp0y, .src0y, .src1y, ._ }, @@ -87099,7 +91660,7 @@ const Temp = struct { .unused, .unused, }, - .dst_temps = .{.{ .cc = .z }}, + .dst_temps = .{ .{ .cc = .z }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, .v_pd, .xor, .tmp0y, .src0y, .src1y, ._ }, @@ -87126,7 +91687,7 @@ const Temp = struct { .unused, .unused, }, - .dst_temps = .{.{ .cc = .z }}, + .dst_temps = .{ .{ .cc = .z }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sia(16, .src0, .sub_size), ._, ._ }, @@ -87161,7 +91722,7 @@ const Temp = struct { .unused, .unused, }, - .dst_temps = .{.{ .cc = .z }}, + .dst_temps = .{ .{ .cc = .z }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sia(16, .src0, .sub_size), ._, ._ }, @@ -87196,7 +91757,7 @@ const Temp = struct { .unused, .unused, }, - .dst_temps = .{.{ .cc = .z }}, + .dst_temps = .{ .{ .cc = .z }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -87228,7 +91789,7 @@ const Temp = struct { .unused, .unused, }, - .dst_temps = .{.{ .cc = .z }}, + .dst_temps = .{ .{ .cc = .z }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -87260,7 +91821,7 @@ const Temp = struct { .unused, .unused, }, - .dst_temps = .{.{ .cc = .z }}, + .dst_temps = .{ .{ .cc = .z }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -87292,7 +91853,7 @@ const Temp = struct { .unused, .unused, }, - .dst_temps = .{.{ .cc = .z }}, + .dst_temps = .{ .{ .cc = .z }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -87324,7 +91885,7 @@ const Temp = struct { .unused, .unused, }, - .dst_temps = .{.{ .cc = .z }}, + .dst_temps = .{ .{ .cc = .z }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -87357,7 +91918,7 @@ const Temp = struct { .unused, .unused, }, - .dst_temps = .{.{ .cc = .z }}, + .dst_temps = .{ .{ .cc = .z }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -87390,7 +91951,7 @@ const Temp = struct { .unused, .unused, }, - .dst_temps = .{.{ .cc = .z }}, + .dst_temps = .{ .{ .cc = .z }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -87423,7 +91984,7 @@ const Temp = struct { .unused, .unused, }, - .dst_temps = .{.{ .cc = .z }}, + .dst_temps = .{ .{ .cc = .z }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -87453,7 +92014,7 @@ const Temp = struct { .unused, .unused, }, - .dst_temps = .{.{ .cc = .z }}, + .dst_temps = .{ .{ .cc = .z }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, @@ -87477,6 +92038,748 @@ const Temp = struct { return res[0]; } + fn divTruncInts(lhs: *Temp, rhs: *Temp, cg: *CodeGen) Select.Error!Temp { + var ops: [2]Temp = .{ lhs.*, rhs.* }; + var res: [1]Temp = undefined; + try cg.select(&res, &.{lhs.typeOf(cg)}, &ops, comptime &.{ .{ + .src_constraints = .{ .{ .signed_int = .byte }, .{ .signed_int = .byte }, .any }, + .patterns = &.{ + .{ .src = .{ .mem, .mem, .none } }, + .{ .src = .{ .to_gpr, .mem, .none } }, + .{ .src = .{ .mem, .to_gpr, .none } }, + .{ .src = .{ .to_gpr, .to_gpr, .none } }, + }, + .dst_temps = .{ .{ .reg = .al }, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .movsx, .dst0d, .src0b, ._, ._ }, + .{ ._, .i_, .div, .src1b, ._, ._, ._ }, + } }, + }, .{ + .src_constraints = .{ .{ .unsigned_int = .byte }, .{ .unsigned_int = .byte }, .any }, + .patterns = &.{ + .{ .src = .{ .mem, .mem, .none } }, + .{ .src = .{ .to_gpr, .mem, .none } }, + .{ .src = .{ .mem, .to_gpr, .none } }, + .{ .src = .{ .to_gpr, .to_gpr, .none } }, + }, + .dst_temps = .{ .{ .reg = .al }, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .movzx, .dst0d, .src0b, ._, ._ }, + .{ ._, ._, .div, .src1b, ._, ._, ._ }, + } }, + }, .{ + .src_constraints = .{ .{ .signed_int = .word }, .{ .signed_int = .word }, .any }, + .patterns = &.{ + .{ .src = .{ .{ .to_reg = .ax }, .mem, .none } }, + .{ .src = .{ .{ .to_reg = .ax }, .to_gpr, .none } }, + }, + .extra_temps = .{ + .{ .type = .i16, .kind = .{ .reg = .dx } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .cwd, ._, ._, ._, ._ }, + .{ ._, .i_, .div, .src1w, ._, ._, ._ }, + } }, + }, .{ + .src_constraints = .{ .{ .unsigned_int = .word }, .{ .unsigned_int = .word }, .any }, + .patterns = &.{ + .{ .src = .{ .{ .to_reg = .ax }, .mem, .none } }, + .{ .src = .{ .{ .to_reg = .ax }, .to_gpr, .none } }, + }, + .extra_temps = .{ + .{ .type = .u16, .kind = .{ .reg = .dx } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, + .{ ._, ._, .div, .src1w, ._, ._, ._ }, + } }, + }, .{ + .src_constraints = .{ .{ .signed_int = .dword }, .{ .signed_int = .dword }, .any }, + .patterns = &.{ + .{ .src = .{ .{ .to_reg = .eax }, .mem, .none } }, + .{ .src = .{ .{ .to_reg = .eax }, .to_gpr, .none } }, + }, + .extra_temps = .{ + .{ .type = .i32, .kind = .{ .reg = .edx } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .cdq, ._, ._, ._, ._ }, + .{ ._, .i_, .div, .src1d, ._, ._, ._ }, + } }, + }, .{ + .src_constraints = .{ .{ .unsigned_int = .dword }, .{ .unsigned_int = .dword }, .any }, + .patterns = &.{ + .{ .src = .{ .{ .to_reg = .eax }, .mem, .none } }, + .{ .src = .{ .{ .to_reg = .eax }, .to_gpr, .none } }, + }, + .extra_temps = .{ + .{ .type = .u32, .kind = .{ .reg = .edx } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, + .{ ._, ._, .div, .src1d, ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .@"64bit", null, null, null }, + .src_constraints = .{ .{ .signed_int = .qword }, .{ .signed_int = .qword }, .any }, + .patterns = &.{ + .{ .src = .{ .{ .to_reg = .rax }, .mem, .none } }, + .{ .src = .{ .{ .to_reg = .rax }, .to_gpr, .none } }, + }, + .extra_temps = .{ + .{ .type = .i64, .kind = .{ .reg = .rdx } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .cqo, ._, ._, ._, ._ }, + .{ ._, .i_, .div, .src1q, ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .@"64bit", null, null, null }, + .src_constraints = .{ .{ .unsigned_int = .qword }, .{ .unsigned_int = .qword }, .any }, + .patterns = &.{ + .{ .src = .{ .{ .to_reg = .rax }, .mem, .none } }, + .{ .src = .{ .{ .to_reg = .rax }, .to_gpr, .none } }, + }, + .extra_temps = .{ + .{ .type = .u64, .kind = .{ .reg = .rdx } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .xor, .tmp0q, .tmp0q, ._, ._ }, + .{ ._, ._, .div, .src1q, ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .@"64bit", null, null, null }, + .src_constraints = .{ .{ .signed_int = .xword }, .{ .signed_int = .xword }, .any }, + .patterns = &.{ + .{ .src = .{ + .{ .to_param_gpr_pair = .{ .cc = .ccc, .index = 0 } }, + .{ .to_param_gpr_pair = .{ .cc = .ccc, .index = 2 } }, + .none, + } }, + }, + .call_frame = .{ .alignment = .@"16" }, + .extra_temps = .{ + .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divti3" } } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .{ .ret_gpr_pair = .{ .cc = .ccc, .index = 0 } }, .unused }, + .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, + .each = .{ .once = &.{ + .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .@"64bit", null, null, null }, + .src_constraints = .{ .{ .unsigned_int = .xword }, .{ .unsigned_int = .xword }, .any }, + .patterns = &.{ + .{ .src = .{ + .{ .to_param_gpr_pair = .{ .cc = .ccc, .index = 0 } }, + .{ .to_param_gpr_pair = .{ .cc = .ccc, .index = 2 } }, + .none, + } }, + }, + .call_frame = .{ .alignment = .@"16" }, + .extra_temps = .{ + .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__udivti3" } } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .{ .ret_gpr_pair = .{ .cc = .ccc, .index = 0 } }, .unused }, + .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, + .each = .{ .once = &.{ + .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .@"64bit", null, null, null }, + .src_constraints = .{ + .{ .remainder_signed_int = .{ .of = .dword, .is = .dword } }, + .{ .remainder_signed_int = .{ .of = .dword, .is = .dword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mut_mem, .to_mut_mem, .none } }, + }, + .call_frame = .{ .alignment = .@"16" }, + .extra_temps = .{ + .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .index = 0 } } }, + .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .index = 1 } } }, + .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .index = 2 } } }, + .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .index = 3 } } }, + .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divei4" } } }, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, + .each = .{ .once = &.{ + .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ }, + .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, + .{ ._, ._, .lea, .tmp2p, .mem(.src1), ._, ._ }, + .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_8_size), ._, ._ }, + .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .@"64bit", null, null, null }, + .src_constraints = .{ + .{ .remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, + .{ .remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .call_frame = .{ .alignment = .@"16" }, + .extra_temps = .{ + .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .index = 0 } } }, + .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .index = 1 } } }, + .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .index = 2 } } }, + .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .index = 3 } } }, + .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__udivei4" } } }, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, + .each = .{ .once = &.{ + .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ }, + .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, + .{ ._, ._, .lea, .tmp2p, .mem(.src1), ._, ._ }, + .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_8_size), ._, ._ }, + .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .slow_incdec, null, null, null }, + .src_constraints = .{ + .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, + .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .i8, .kind = .{ .reg = .al } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, .i_, .div, .memia(.src1b, .tmp0, .add_unaligned_size), ._, ._, ._ }, + .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .src_constraints = .{ + .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, + .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .i8, .kind = .{ .reg = .al } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, .i_, .div, .memia(.src1b, .tmp0, .add_unaligned_size), ._, ._, ._ }, + .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, + .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, + .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .slow_incdec, null, null, null }, + .src_constraints = .{ + .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, + .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .u8, .kind = .{ .reg = .al } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._, .div, .memia(.src1b, .tmp0, .add_unaligned_size), ._, ._, ._ }, + .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .src_constraints = .{ + .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, + .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .u8, .kind = .{ .reg = .al } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._, .div, .memia(.src1b, .tmp0, .add_unaligned_size), ._, ._, ._ }, + .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, + .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, + .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .src_constraints = .{ + .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, + .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .i16, .kind = .{ .reg = .ax } }, + .{ .type = .i16, .kind = .{ .reg = .dx } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._, .cwd, ._, ._, ._, ._ }, + .{ ._, .i_, .div, .memia(.src1w, .tmp0, .add_unaligned_size), ._, ._, ._ }, + .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .src_constraints = .{ + .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, + .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .u16, .kind = .{ .reg = .ax } }, + .{ .type = .u16, .kind = .{ .reg = .dx } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, + .{ ._, ._, .div, .memia(.src1w, .tmp0, .add_unaligned_size), ._, ._, ._ }, + .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .src_constraints = .{ + .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, + .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .i32, .kind = .{ .reg = .eax } }, + .{ .type = .i32, .kind = .{ .reg = .edx } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._, .cdq, ._, ._, ._, ._ }, + .{ ._, .i_, .div, .memia(.src1d, .tmp0, .add_unaligned_size), ._, ._, ._ }, + .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp1d, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .src_constraints = .{ + .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, + .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .u32, .kind = .{ .reg = .eax } }, + .{ .type = .u32, .kind = .{ .reg = .edx } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, + .{ ._, ._, .div, .memia(.src1d, .tmp0, .add_unaligned_size), ._, ._, ._ }, + .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp1d, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .@"64bit", null, null, null }, + .src_constraints = .{ + .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, + .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .i64, .kind = .{ .reg = .rax } }, + .{ .type = .i64, .kind = .{ .reg = .rdx } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._, .cqo, ._, ._, ._, ._ }, + .{ ._, .i_, .div, .memia(.src1q, .tmp0, .add_unaligned_size), ._, ._, ._ }, + .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1q, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .@"64bit", null, null, null }, + .src_constraints = .{ + .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, + .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .u64, .kind = .{ .reg = .rax } }, + .{ .type = .u64, .kind = .{ .reg = .rdx } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, + .{ ._, ._, .div, .memia(.src1q, .tmp0, .add_unaligned_size), ._, ._, ._ }, + .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1q, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .@"64bit", null, null, null }, + .src_constraints = .{ + .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, + .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .call_frame = .{ .alignment = .@"16" }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .u64, .kind = .{ .param_gpr = .{ .cc = .ccc, .index = 0 } } }, + .{ .type = .i64, .kind = .{ .param_gpr = .{ .cc = .ccc, .index = 1 } } }, + .{ .type = .u64, .kind = .{ .param_gpr = .{ .cc = .ccc, .index = 2 } } }, + .{ .type = .i64, .kind = .{ .param_gpr = .{ .cc = .ccc, .index = 3 } } }, + .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divti3" } } }, + .{ .type = .u64, .kind = .{ .ret_gpr = .{ .cc = .ccc, .index = 0 } } }, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._, .mov, .tmp2q, .memiad(.src0q, .tmp0, .add_unaligned_size, 8), ._, ._ }, + .{ ._, ._, .mov, .tmp3q, .memia(.src1q, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._, .mov, .tmp4q, .memiad(.src1q, .tmp0, .add_unaligned_size, 8), ._, ._ }, + .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, + .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp6q, ._, ._ }, + .{ ._, ._, .mov, .memiad(.dst0q, .tmp0, .add_unaligned_size, 8), .tmp3q, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .@"64bit", null, null, null }, + .src_constraints = .{ + .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, + .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .call_frame = .{ .alignment = .@"16" }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .u64, .kind = .{ .param_gpr = .{ .cc = .ccc, .index = 0 } } }, + .{ .type = .u64, .kind = .{ .param_gpr = .{ .cc = .ccc, .index = 1 } } }, + .{ .type = .u64, .kind = .{ .param_gpr = .{ .cc = .ccc, .index = 2 } } }, + .{ .type = .u64, .kind = .{ .param_gpr = .{ .cc = .ccc, .index = 3 } } }, + .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__udivti3" } } }, + .{ .type = .u64, .kind = .{ .ret_gpr = .{ .cc = .ccc, .index = 0 } } }, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._, .mov, .tmp2q, .memiad(.src0q, .tmp0, .add_unaligned_size, 8), ._, ._ }, + .{ ._, ._, .mov, .tmp3q, .memia(.src1q, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._, .mov, .tmp4q, .memiad(.src1q, .tmp0, .add_unaligned_size, 8), ._, ._ }, + .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, + .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp6q, ._, ._ }, + .{ ._, ._, .mov, .memiad(.dst0q, .tmp0, .add_unaligned_size, 8), .tmp3q, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .@"64bit", null, null, null }, + .src_constraints = .{ + .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, + .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mut_mem, .to_mut_mem, .none } }, + }, + .call_frame = .{ .alignment = .@"16" }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .index = 0 } } }, + .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .index = 1 } } }, + .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .index = 2 } } }, + .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .index = 3 } } }, + .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divei4" } } }, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", ._, .lea, .tmp1p, .memia(.dst0, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._, .lea, .tmp2p, .memia(.src0, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._, .lea, .tmp3p, .memia(.src1, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._, .mov, .tmp4d, .sa(.src0, .add_8_elem_size), ._, ._ }, + .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .sa(.src0, .add_elem_size), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .@"64bit", null, null, null }, + .src_constraints = .{ + .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, + .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mut_mem, .to_mut_mem, .none } }, + }, + .call_frame = .{ .alignment = .@"16" }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .index = 0 } } }, + .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .index = 1 } } }, + .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .index = 2 } } }, + .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .index = 3 } } }, + .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__udivei4" } } }, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", ._, .lea, .tmp1p, .memia(.dst0, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._, .lea, .tmp2p, .memia(.src0, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._, .lea, .tmp3p, .memia(.src1, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._, .mov, .tmp4d, .sa(.src0, .add_8_elem_size), ._, ._ }, + .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .sa(.src0, .add_elem_size), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + } }); + lhs.*, rhs.* = ops; + return res[0]; + } + fn finish( temp: Temp, inst: Air.Inst.Index, @@ -87630,7 +92933,7 @@ fn tempAllocReg(cg: *CodeGen, ty: Type, rs: RegisterManager.RegisterBitSet) Inne fn tempAllocRegPair(cg: *CodeGen, ty: Type, rs: RegisterManager.RegisterBitSet) InnerError!Temp { const temp_index = cg.next_temp_index; temp_index.tracking(cg).* = .init( - .{ .register_pair = try cg.register_manager.allocRegs(2, temp_index.toIndex(), rs) }, + .{ .register_pair = try cg.register_manager.allocRegs(2, @splat(temp_index.toIndex()), rs) }, ); cg.temp_type[@intFromEnum(temp_index)] = ty; cg.next_temp_index = @enumFromInt(@intFromEnum(temp_index) + 1); @@ -87764,7 +93067,7 @@ const Select = struct { const mir_tag: Mir.Inst.FixedTag = .{ inst[1], inst[2] }; pseudo: { switch (inst[0]) { - .@"0:", .@"1:", .@"2:" => |label| s.emitLabel(label), + .@"0:", .@"1:", .@"2:", .@"3:" => |label| s.emitLabel(label), ._ => {}, .pseudo => break :pseudo, } @@ -87919,11 +93222,13 @@ const Select = struct { dst_temps: [@intFromEnum(Select.Operand.Ref.src0) - @intFromEnum(Select.Operand.Ref.dst0)]TempSpec.Kind = @splat(.unused), clobbers: packed struct { eflags: bool = false, - caller_preserved: enum(u2) { none, ccc, zigcc } = .none, + caller_preserved: CallConv = .none, } = .{}, each: union(enum) { once: []const Instruction, }, + + const CallConv = enum(u2) { none, ccc, zigcc }; }; const Constraint = union(enum) { @@ -88170,6 +93475,10 @@ const Select = struct { simm32, to_reg: Register, to_reg_pair: [2]Register, + to_param_gpr: TempSpec.Kind.CallConvRegSpec, + to_param_gpr_pair: TempSpec.Kind.CallConvRegSpec, + to_ret_gpr: TempSpec.Kind.CallConvRegSpec, + to_ret_gpr_pair: TempSpec.Kind.CallConvRegSpec, mem, to_mem, mut_mem, @@ -88205,7 +93514,7 @@ const Select = struct { fn matches(src: Src, temp: Temp, cg: *CodeGen) bool { return switch (src) { - .none => unreachable, + .none => temp.tracking(cg).short == .none, .imm8 => switch (temp.tracking(cg).short) { .immediate => |imm| std.math.cast(u8, imm) != null, else => false, @@ -88225,7 +93534,7 @@ const Select = struct { .mem => temp.tracking(cg).short.isMemory(), .to_mem, .to_mut_mem => true, .mut_mem => temp.isMut(cg) and temp.tracking(cg).short.isMemory(), - .to_reg, .to_reg_pair => true, + .to_reg, .to_reg_pair, .to_param_gpr, .to_param_gpr_pair, .to_ret_gpr, .to_ret_gpr_pair => true, .gpr => temp.typeOf(cg).abiSize(cg.pt.zcu) <= 8 and switch (temp.tracking(cg).short) { .register => |reg| reg.class() == .general_purpose, .register_offset => |reg_off| reg_off.reg.class() == .general_purpose and reg_off.off == 0, @@ -88308,11 +93617,15 @@ const Select = struct { fn convert(src: Src, temp: *Temp, cg: *CodeGen) InnerError!bool { return switch (src) { - .none => unreachable, - .imm8, .imm16, .imm32, .simm32 => false, - .mem, .to_mem, .mut_mem, .to_mut_mem => try temp.toBase(cg), + .none, .imm8, .imm16, .imm32, .simm32 => false, + .mem, .to_mem => try temp.toBase(false, cg), + .mut_mem, .to_mut_mem => try temp.toBase(true, cg), .to_reg => |reg| try temp.toReg(reg, cg), .to_reg_pair => |regs| try temp.toRegPair(regs, cg), + .to_param_gpr => |param_spec| try temp.toReg(abi.getCAbiIntParamRegs(param_spec.tag(cg))[param_spec.index], cg), + .to_param_gpr_pair => |param_spec| try temp.toRegPair(abi.getCAbiIntParamRegs(param_spec.tag(cg))[param_spec.index..][0..2].*, cg), + .to_ret_gpr => |ret_spec| try temp.toReg(abi.getCAbiIntReturnRegs(ret_spec.tag(cg))[ret_spec.index], cg), + .to_ret_gpr_pair => |ret_spec| try temp.toRegPair(abi.getCAbiIntReturnRegs(ret_spec.tag(cg))[ret_spec.index..][0..2].*, cg), .gpr, .to_gpr => try temp.toRegClass(false, .general_purpose, cg), .mut_gpr, .to_mut_gpr => try temp.toRegClass(true, .general_purpose, cg), .x87, .to_x87 => try temp.toRegClass(false, .x87, cg), @@ -88339,57 +93652,102 @@ const Select = struct { ref: Select.Operand.Ref, reg: Register, reg_pair: [2]Register, + param_gpr: CallConvRegSpec, + param_gpr_pair: CallConvRegSpec, + ret_gpr: CallConvRegSpec, + ret_gpr_pair: CallConvRegSpec, rc: Register.Class, + rc_pair: Register.Class, mut_rc: struct { ref: Select.Operand.Ref, rc: Register.Class }, ref_mask: struct { ref: Select.Operand.Ref, info: MaskInfo }, rc_mask: struct { rc: Register.Class, info: MaskInfo }, mut_rc_mask: struct { ref: Select.Operand.Ref, rc: Register.Class, info: MaskInfo }, mem, - smin_mem: ConstInfo, - smax_mem: ConstInfo, - umin_mem: ConstInfo, - umax_mem: ConstInfo, - @"0x1p63_mem": ConstInfo, + mem_of_type: Select.Operand.Ref, + smin_mem: ConstSpec, + smax_mem: ConstSpec, + umin_mem: ConstSpec, + umax_mem: ConstSpec, + @"0x1p63_mem": ConstSpec, f64_0x1p52_0x1p84_mem, u32_0x1p52_hi_0x1p84_hi_0_0_mem, f32_0_0x1p64_mem, pshufb_cm_mem: struct { from: Memory.Size, to: Memory.Size }, frame: FrameIndex, + lazy_symbol: struct { kind: link.File.LazySymbol.Kind, ref: Select.Operand.Ref = .none }, symbol: *const struct { lib: ?[]const u8 = null, name: []const u8 }, - const ConstInfo = struct { - ref: ?Select.Operand.Ref = null, + const ConstSpec = struct { + ref: Select.Operand.Ref = .none, to_signedness: ?std.builtin.Signedness = null, vectorize_to: ?Memory.Size = null, }; - fn finish(kind: Kind, temp: Temp, s: *const Select) void { - switch (kind) { - else => {}, - inline .rc_mask, .mut_rc_mask, .ref_mask => |mask| temp.asMask(mask.info, s.cg), + const CallConvRegSpec = struct { + cc: Case.CallConv, + index: u2, + + fn tag(spec: CallConvRegSpec, cg: *const CodeGen) std.builtin.CallingConvention.Tag { + return switch (spec.cc) { + .none => unreachable, + .ccc => cg.target.cCallingConvention().?, + .zigcc => .auto, + }; } - } + }; - fn pass(kind: Kind) u2 { - return switch (kind) { - .unused => 0, - .reg => 1, - else => 2, + fn lock(kind: Kind, cg: *CodeGen) ![2]?RegisterLock { + var reg_locks: [2]?RegisterLock = @splat(null); + const regs: [2]Register = switch (kind) { + else => return reg_locks, + .reg => |reg| .{ reg, .none }, + .reg_pair => |regs| regs, + .param_gpr => |param_spec| abi.getCAbiIntParamRegs(param_spec.tag(cg))[param_spec.index..][0..1].* ++ .{.none}, + .param_gpr_pair => |param_spec| abi.getCAbiIntParamRegs(param_spec.tag(cg))[param_spec.index..][0..2].*, + .ret_gpr => |ret_spec| abi.getCAbiIntReturnRegs(ret_spec.tag(cg))[ret_spec.index..][0..1].* ++ .{.none}, + .ret_gpr_pair => |ret_spec| abi.getCAbiIntReturnRegs(ret_spec.tag(cg))[ret_spec.index..][0..2].*, }; + for (regs, ®_locks) |reg, *reg_lock| { + if (reg == .none) continue; + const reg_index = RegisterManager.indexOfRegIntoTracked(reg) orelse continue; + try cg.register_manager.getRegIndex(reg_index, null); + reg_lock.* = cg.register_manager.lockRegIndex(reg_index); + } + return reg_locks; + } + + fn finish(kind: Kind, temp: Temp, cg: *CodeGen) void { + switch (kind) { + else => {}, + inline .rc_mask, .mut_rc_mask, .ref_mask => |mask| temp.asMask(mask.info, cg), + } } }; - fn create(spec: TempSpec, s: *Select) InnerError!struct { Temp, bool } { + fn create(spec: TempSpec, s: *const Select) InnerError!struct { Temp, bool } { const cg = s.cg; const pt = cg.pt; return switch (spec.kind) { - .unused => unreachable, + .unused => .{ undefined, false }, .any => .{ try cg.tempAlloc(spec.type), true }, .cc => |cc| .{ try cg.tempInit(spec.type, .{ .eflags = cc }), true }, .ref => |ref| .{ ref.tempOf(s), false }, .reg => |reg| .{ try cg.tempInit(spec.type, .{ .register = reg }), true }, .reg_pair => |regs| .{ try cg.tempInit(spec.type, .{ .register_pair = regs }), true }, + .param_gpr => |param_spec| .{ try cg.tempInit(spec.type, .{ + .register = abi.getCAbiIntParamRegs(param_spec.tag(cg))[param_spec.index], + }), true }, + .param_gpr_pair => |param_spec| .{ try cg.tempInit(spec.type, .{ + .register_pair = abi.getCAbiIntParamRegs(param_spec.tag(cg))[param_spec.index..][0..2].*, + }), true }, + .ret_gpr => |ret_spec| .{ try cg.tempInit(spec.type, .{ + .register = abi.getCAbiIntReturnRegs(ret_spec.tag(cg))[ret_spec.index], + }), true }, + .ret_gpr_pair => |ret_spec| .{ try cg.tempInit(spec.type, .{ + .register_pair = abi.getCAbiIntReturnRegs(ret_spec.tag(cg))[ret_spec.index..][0..2].*, + }), true }, .rc => |rc| .{ try cg.tempAllocReg(spec.type, regSetForRegClass(rc)), true }, + .rc_pair => |rc| .{ try cg.tempAllocRegPair(spec.type, regSetForRegClass(rc)), true }, .mut_rc => |ref_rc| { const temp = ref_rc.ref.tempOf(s); if (temp.isMut(cg)) switch (temp.tracking(cg).short) { @@ -88411,15 +93769,16 @@ const Select = struct { return .{ try cg.tempAllocReg(spec.type, regSetForRegClass(ref_rc_mask.rc)), true }; }, .mem => .{ try cg.tempAllocMem(spec.type), true }, - .smin_mem, .smax_mem, .umin_mem, .umax_mem, .@"0x1p63_mem" => |const_info| { + .mem_of_type => |ref| .{ try cg.tempAllocMem(ref.typeOf(s)), true }, + .smin_mem, .smax_mem, .umin_mem, .umax_mem, .@"0x1p63_mem" => |const_spec| { const zcu = pt.zcu; const ip = &zcu.intern_pool; - const ty = if (const_info.ref) |ref| ref.typeOf(s) else spec.type; + const ty = if (const_spec.ref == .none) spec.type else const_spec.ref.typeOf(s); const vector_len, const scalar_ty: Type = switch (ip.indexToKey(ty.toIntern())) { else => .{ null, ty }, .vector_type => |vector_type| .{ vector_type.len, .fromInterned(vector_type.child) }, }; - const res_vector_len: ?u32 = if (const_info.vectorize_to) |vectorize_to| switch (vectorize_to) { + const res_vector_len: ?u32 = if (const_spec.vectorize_to) |vectorize_to| switch (vectorize_to) { .none => null, else => @intCast(@divExact(@divExact(vectorize_to.bitSize(cg.target), 8), scalar_ty.abiSize(pt.zcu))), } else vector_len; @@ -88437,7 +93796,7 @@ const Select = struct { .signedness = .signed, .bits = cg.floatBits(scalar_ty).?, }; - const scalar_signedness = const_info.to_signedness orelse scalar_info.signedness; + const scalar_signedness = const_spec.to_signedness orelse scalar_info.signedness; const scalar_int_ty = try pt.intType(scalar_signedness, scalar_info.bits); if (scalar_info.bits <= 64) { @@ -88525,10 +93884,10 @@ const Select = struct { (try pt.floatValue(.f32, @as(f32, 0x1p64))).toIntern(), } }, } }))), true }, - .pshufb_cm_mem => |info| { + .pshufb_cm_mem => |const_spec| { var bytes: [16]u8 = @splat(1 << 7); - const from_bytes: u32 = @intCast(@divExact(info.from.bitSize(cg.target), 8)); - const to_bytes: u32 = @intCast(@divExact(info.to.bitSize(cg.target), 8)); + const from_bytes: u32 = @intCast(@divExact(const_spec.from.bitSize(cg.target), 8)); + const to_bytes: u32 = @intCast(@divExact(const_spec.to.bitSize(cg.target), 8)); var from_index: u32 = 0; var to_index: u32 = 0; while (from_index < bytes.len) { @@ -88543,11 +93902,33 @@ const Select = struct { } }))), true }; }, .frame => |frame_index| .{ try cg.tempInit(spec.type, .{ .load_frame = .{ .index = frame_index } }), true }, - .symbol => |symbol| .{ try cg.tempInit(spec.type, .{ .lea_symbol = .{ + .lazy_symbol => |lazy_symbol_spec| { + const ty = if (lazy_symbol_spec.ref == .none) spec.type else lazy_symbol_spec.ref.typeOf(s); + const lazy_symbol: link.File.LazySymbol = .{ + .kind = lazy_symbol_spec.kind, + .ty = ty.toIntern(), + }; + return .{ try cg.tempInit(.usize, .{ .lea_symbol = .{ + .sym_index = if (cg.bin_file.cast(.elf)) |elf_file| + elf_file.zigObjectPtr().?.getOrCreateMetadataForLazySymbol(elf_file, pt, lazy_symbol) catch |err| + return cg.fail("{s} creating lazy symbol", .{@errorName(err)}) + else if (cg.bin_file.cast(.macho)) |macho_file| + macho_file.getZigObject().?.getOrCreateMetadataForLazySymbol(macho_file, pt, lazy_symbol) catch |err| + return cg.fail("{s} creating lazy symbol", .{@errorName(err)}) + else if (cg.bin_file.cast(.coff)) |coff_file| + coff_file.getAtom(coff_file.getOrCreateAtomForLazySymbol(pt, lazy_symbol) catch |err| + return cg.fail("{s} creating lazy symbol", .{@errorName(err)})).getSymbolIndex().? + else + return cg.fail("external symbols unimplemented for {s}", .{@tagName(cg.bin_file.tag)}), + } }), true }; + }, + .symbol => |symbol_spec| .{ try cg.tempInit(spec.type, .{ .lea_symbol = .{ .sym_index = if (cg.bin_file.cast(.elf)) |elf_file| - try elf_file.getGlobalSymbol(symbol.name, symbol.lib) + try elf_file.getGlobalSymbol(symbol_spec.name, symbol_spec.lib) else if (cg.bin_file.cast(.macho)) |macho_file| - try macho_file.getGlobalSymbol(symbol.name, symbol.lib) + try macho_file.getGlobalSymbol(symbol_spec.name, symbol_spec.lib) + else if (cg.bin_file.cast(.coff)) |coff_file| + link.File.Coff.global_symbol_bit | try coff_file.getGlobalSymbol(symbol_spec.name, symbol_spec.lib) else return cg.fail("external symbols unimplemented for {s}", .{@tagName(cg.bin_file.tag)}), } }), true }, @@ -88564,7 +93945,7 @@ const Select = struct { Select.Operand, Select.Operand, }; - const Label = enum { @"0:", @"1:", @"2:", @"_", pseudo }; + const Label = enum { @"0:", @"1:", @"2:", @"3:", @"_", pseudo }; const Operand = struct { flags: packed struct(u16) { tag: Tag, @@ -88595,8 +93976,10 @@ const Select = struct { ptr_size, ptr_bit_size, size, + src0_size, delta_size, delta_elem_size, + size_add_elem_size, size_sub_elem_size, unaligned_size, bit_size, @@ -88606,13 +93989,14 @@ const Select = struct { elem_size, src0_elem_size, dst0_elem_size, - src0_elem_size_times_src1, + src0_elem_size_mul_src1, + src1, log2_src0_elem_size, smin, smax, umax, }, - op: enum(u2) { mul, div, rem_8_mul }, + op: enum(u2) { mul, div, div_8_down, rem_8_mul }, rhs: Memory.Scale, const none: Adjust = .{ .sign = .pos, .lhs = .none, .op = .mul, .rhs = .@"1" }; @@ -88625,9 +94009,12 @@ const Select = struct { const sub_size_div_8: Adjust = .{ .sign = .neg, .lhs = .size, .op = .div, .rhs = .@"8" }; const sub_size_div_4: Adjust = .{ .sign = .neg, .lhs = .size, .op = .div, .rhs = .@"4" }; const sub_size: Adjust = .{ .sign = .neg, .lhs = .size, .op = .mul, .rhs = .@"1" }; + const sub_src0_size_div_8: Adjust = .{ .sign = .neg, .lhs = .src0_size, .op = .div, .rhs = .@"8" }; + const sub_src0_size: Adjust = .{ .sign = .neg, .lhs = .src0_size, .op = .mul, .rhs = .@"1" }; const add_delta_size_div_8: Adjust = .{ .sign = .pos, .lhs = .delta_size, .op = .div, .rhs = .@"8" }; const add_delta_elem_size: Adjust = .{ .sign = .pos, .lhs = .delta_elem_size, .op = .mul, .rhs = .@"1" }; const add_delta_elem_size_div_8: Adjust = .{ .sign = .pos, .lhs = .delta_elem_size, .op = .div, .rhs = .@"8" }; + const add_size_add_elem_size: Adjust = .{ .sign = .pos, .lhs = .size_add_elem_size, .op = .mul, .rhs = .@"1" }; const add_size_sub_elem_size: Adjust = .{ .sign = .pos, .lhs = .size_sub_elem_size, .op = .mul, .rhs = .@"1" }; const add_unaligned_size: Adjust = .{ .sign = .pos, .lhs = .unaligned_size, .op = .mul, .rhs = .@"1" }; const sub_unaligned_size: Adjust = .{ .sign = .neg, .lhs = .unaligned_size, .op = .mul, .rhs = .@"1" }; @@ -88644,16 +94031,22 @@ const Select = struct { const add_2_len: Adjust = .{ .sign = .pos, .lhs = .len, .op = .mul, .rhs = .@"2" }; const add_len: Adjust = .{ .sign = .pos, .lhs = .len, .op = .mul, .rhs = .@"1" }; const sub_len: Adjust = .{ .sign = .neg, .lhs = .len, .op = .mul, .rhs = .@"1" }; - const add_elem_size_div_8: Adjust = .{ .sign = .pos, .lhs = .elem_size, .op = .div, .rhs = .@"8" }; const add_8_elem_size: Adjust = .{ .sign = .pos, .lhs = .elem_size, .op = .mul, .rhs = .@"8" }; + const add_elem_size: Adjust = .{ .sign = .pos, .lhs = .elem_size, .op = .mul, .rhs = .@"1" }; + const add_elem_size_div_8: Adjust = .{ .sign = .pos, .lhs = .elem_size, .op = .div, .rhs = .@"8" }; + const sub_elem_size_div_8: Adjust = .{ .sign = .neg, .lhs = .elem_size, .op = .div, .rhs = .@"8" }; + const sub_elem_size_div_4: Adjust = .{ .sign = .neg, .lhs = .elem_size, .op = .div, .rhs = .@"4" }; const add_src0_elem_size: Adjust = .{ .sign = .pos, .lhs = .src0_elem_size, .op = .mul, .rhs = .@"1" }; const add_2_src0_elem_size: Adjust = .{ .sign = .pos, .lhs = .src0_elem_size, .op = .mul, .rhs = .@"2" }; const add_4_src0_elem_size: Adjust = .{ .sign = .pos, .lhs = .src0_elem_size, .op = .mul, .rhs = .@"4" }; const add_8_src0_elem_size: Adjust = .{ .sign = .pos, .lhs = .src0_elem_size, .op = .mul, .rhs = .@"8" }; const add_src0_elem_size_div_8: Adjust = .{ .sign = .pos, .lhs = .src0_elem_size, .op = .div, .rhs = .@"8" }; const sub_src0_elem_size: Adjust = .{ .sign = .neg, .lhs = .src0_elem_size, .op = .mul, .rhs = .@"1" }; - const add_src0_elem_size_times_src1: Adjust = .{ .sign = .pos, .lhs = .src0_elem_size_times_src1, .op = .mul, .rhs = .@"1" }; - const sub_src0_elem_size_times_src1: Adjust = .{ .sign = .neg, .lhs = .src0_elem_size_times_src1, .op = .mul, .rhs = .@"1" }; + const add_src0_elem_size_mul_src1: Adjust = .{ .sign = .pos, .lhs = .src0_elem_size_mul_src1, .op = .mul, .rhs = .@"1" }; + const sub_src0_elem_size_mul_src1: Adjust = .{ .sign = .neg, .lhs = .src0_elem_size_mul_src1, .op = .mul, .rhs = .@"1" }; + const add_src1_div_8_down_4: Adjust = .{ .sign = .pos, .lhs = .src1, .op = .div_8_down, .rhs = .@"4" }; + const add_src1_rem_32: Adjust = .{ .sign = .pos, .lhs = .src1, .op = .rem_8_mul, .rhs = .@"4" }; + const add_src1_rem_64: Adjust = .{ .sign = .pos, .lhs = .src1, .op = .rem_8_mul, .rhs = .@"8" }; const add_log2_src0_elem_size: Adjust = .{ .sign = .pos, .lhs = .log2_src0_elem_size, .op = .mul, .rhs = .@"1" }; const add_dst0_elem_size: Adjust = .{ .sign = .pos, .lhs = .dst0_elem_size, .op = .mul, .rhs = .@"1" }; const add_elem_limbs: Adjust = .{ .sign = .pos, .lhs = .elem_limbs, .op = .mul, .rhs = .@"1" }; @@ -88671,6 +94064,7 @@ const Select = struct { tmp7, tmp8, dst0, + dst1, src0, src1, src2, @@ -88792,6 +94186,17 @@ const Select = struct { const dst0x: Sized = .{ .ref = .dst0, .size = .xword }; const dst0y: Sized = .{ .ref = .dst0, .size = .yword }; + const dst1: Sized = .{ .ref = .dst1, .size = .none }; + const dst1b: Sized = .{ .ref = .dst1, .size = .byte }; + const dst1w: Sized = .{ .ref = .dst1, .size = .word }; + const dst1d: Sized = .{ .ref = .dst1, .size = .dword }; + const dst1p: Sized = .{ .ref = .dst1, .size = .ptr }; + const dst1g: Sized = .{ .ref = .dst1, .size = .gpr }; + const dst1q: Sized = .{ .ref = .dst1, .size = .qword }; + const dst1t: Sized = .{ .ref = .dst1, .size = .tbyte }; + const dst1x: Sized = .{ .ref = .dst1, .size = .xword }; + const dst1y: Sized = .{ .ref = .dst1, .size = .yword }; + const src0: Sized = .{ .ref = .src0, .size = .none }; const src0b: Sized = .{ .ref = .src0, .size = .byte }; const src0w: Sized = .{ .ref = .src0, .size = .word }; @@ -88847,6 +94252,8 @@ const Select = struct { const @"1f": Select.Operand = .{ .flags = .{ .tag = .forward_label }, .base = .{ .ref = .tmp1, .size = .none } }; const @"2b": Select.Operand = .{ .flags = .{ .tag = .backward_label }, .base = .{ .ref = .tmp2, .size = .none } }; const @"2f": Select.Operand = .{ .flags = .{ .tag = .forward_label }, .base = .{ .ref = .tmp2, .size = .none } }; + const @"3b": Select.Operand = .{ .flags = .{ .tag = .backward_label }, .base = .{ .ref = .tmp3, .size = .none } }; + const @"3f": Select.Operand = .{ .flags = .{ .tag = .forward_label }, .base = .{ .ref = .tmp3, .size = .none } }; const tmp0b: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp0b }; const tmp0w: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp0w }; @@ -88948,6 +94355,16 @@ const Select = struct { const dst0x: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .dst0x }; const dst0y: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .dst0y }; + const dst1b: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .dst1b }; + const dst1w: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .dst1w }; + const dst1d: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .dst1d }; + const dst1p: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .dst1p }; + const dst1g: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .dst1g }; + const dst1q: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .dst1q }; + const dst1t: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .dst1t }; + const dst1x: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .dst1x }; + const dst1y: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .dst1y }; + const src0b: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .src0b }; const src0w: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .src0w }; const src0d: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .src0d }; @@ -89025,6 +94442,13 @@ const Select = struct { .base = base, }; } + fn leaad(base: Ref.Sized, adjust: Adjust, disp: i32) Select.Operand { + return .{ + .flags = .{ .tag = .lea, .adjust = adjust }, + .base = base, + .imm = disp, + }; + } fn lead(base: Ref.Sized, disp: i32) Select.Operand { return .{ .flags = .{ .tag = .lea }, @@ -89181,10 +94605,15 @@ const Select = struct { .ptr_size => @divExact(s.cg.target.ptrBitWidth(), 8), .ptr_bit_size => s.cg.target.ptrBitWidth(), .size => @intCast(op.base.ref.typeOf(s).abiSize(s.cg.pt.zcu)), + .src0_size => @intCast(Select.Operand.Ref.src0.typeOf(s).abiSize(s.cg.pt.zcu)), .delta_size => @intCast(@as(SignedImm, @intCast(op.base.ref.typeOf(s).abiSize(s.cg.pt.zcu))) - @as(SignedImm, @intCast(op.index.ref.typeOf(s).abiSize(s.cg.pt.zcu)))), .delta_elem_size => @intCast(@as(SignedImm, @intCast(op.base.ref.typeOf(s).elemType2(s.cg.pt.zcu).abiSize(s.cg.pt.zcu))) - @as(SignedImm, @intCast(op.index.ref.typeOf(s).elemType2(s.cg.pt.zcu).abiSize(s.cg.pt.zcu)))), + .size_add_elem_size => { + const ty = op.base.ref.typeOf(s); + break :lhs @intCast(ty.abiSize(s.cg.pt.zcu) + ty.elemType2(s.cg.pt.zcu).abiSize(s.cg.pt.zcu)); + }, .size_sub_elem_size => { const ty = op.base.ref.typeOf(s); break :lhs @intCast(ty.abiSize(s.cg.pt.zcu) - ty.elemType2(s.cg.pt.zcu).abiSize(s.cg.pt.zcu)); @@ -89200,8 +94629,9 @@ const Select = struct { .elem_size => @intCast(op.base.ref.typeOf(s).elemType2(s.cg.pt.zcu).abiSize(s.cg.pt.zcu)), .src0_elem_size => @intCast(Select.Operand.Ref.src0.typeOf(s).elemType2(s.cg.pt.zcu).abiSize(s.cg.pt.zcu)), .dst0_elem_size => @intCast(Select.Operand.Ref.dst0.typeOf(s).elemType2(s.cg.pt.zcu).abiSize(s.cg.pt.zcu)), - .src0_elem_size_times_src1 => @intCast(Select.Operand.Ref.src0.typeOf(s).elemType2(s.cg.pt.zcu).abiSize(s.cg.pt.zcu) * + .src0_elem_size_mul_src1 => @intCast(Select.Operand.Ref.src0.typeOf(s).elemType2(s.cg.pt.zcu).abiSize(s.cg.pt.zcu) * Select.Operand.Ref.src1.valueOf(s).immediate), + .src1 => @intCast(Select.Operand.Ref.src1.valueOf(s).immediate), .log2_src0_elem_size => @intCast(std.math.log2(Select.Operand.Ref.src0.typeOf(s).elemType2(s.cg.pt.zcu).abiSize(s.cg.pt.zcu))), .smin => @as(SignedImm, std.math.minInt(SignedImm)) >> @truncate( -%op.base.ref.typeOf(s).scalarType(s.cg.pt.zcu).bitSize(s.cg.pt.zcu), @@ -89214,18 +94644,19 @@ const Select = struct { )), }; const rhs = op.flags.adjust.rhs.toLog2(); - const res = res: switch (op.flags.adjust.op) { + const op_res = op_res: switch (op.flags.adjust.op) { .mul => { - const res = @shlWithOverflow(lhs, rhs); - assert(res[1] == 0); - break :res res[0]; + const op_res = @shlWithOverflow(lhs, rhs); + assert(op_res[1] == 0); + break :op_res op_res[0]; }, .div => @shrExact(lhs, rhs), + .div_8_down => lhs >> 3 & @as(SignedImm, -1) << rhs, .rem_8_mul => lhs & (@as(SignedImm, 1) << @intCast(@as(u3, 3) + rhs)) - 1, }; return switch (op.flags.adjust.sign) { - .neg => op.imm - res, - .pos => op.imm + res, + .neg => op.imm - op_res, + .pos => op.imm + op_res, }; } @@ -89253,21 +94684,44 @@ const Select = struct { .simm => .{ .imm = .s(op.adjustedImm(i32, s)) }, .uimm => .{ .imm = .u(@bitCast(op.adjustedImm(i64, s))) }, .lea => .{ .mem = .{ - .base = .{ .reg = registerAlias(op.base.ref.valueOf(s).register, @divExact(s.cg.target.ptrBitWidth(), 8)) }, + .base = switch (op.base.ref.valueOf(s)) { + else => unreachable, + .register => |base_reg| .{ .reg = registerAlias(base_reg, @divExact(s.cg.target.ptrBitWidth(), 8)) }, + .register_offset => |base_reg_off| .{ .reg = registerAlias(base_reg_off.reg, @divExact(s.cg.target.ptrBitWidth(), 8)) }, + .lea_symbol => |base_sym_off| .{ .reloc = base_sym_off.sym_index }, + }, .mod = .{ .rm = .{ .size = op.base.size, .index = switch (op.index.ref) { - else => |ref| registerAlias(ref.valueOf(s).register, @divExact(s.cg.target.ptrBitWidth(), 8)), + else => |index_ref| switch (index_ref.valueOf(s)) { + else => unreachable, + .register => |index_reg| registerAlias(index_reg, @divExact(s.cg.target.ptrBitWidth(), 8)), + .register_offset => |index_reg_off| registerAlias(index_reg_off.reg, @divExact(s.cg.target.ptrBitWidth(), 8)), + }, .none => .none, }, .scale = op.index.scale, - .disp = op.adjustedImm(i32, s), + .disp = op.adjustedImm(i32, s) + switch (op.base.ref.valueOf(s)) { + else => unreachable, + .register => 0, + .register_offset => |base_reg_off| base_reg_off.off, + .lea_symbol => |base_sym_off| base_sym_off.off, + } + switch (op.index.ref) { + else => |index_ref| switch (index_ref + .valueOf(s)) { + else => unreachable, + .register => 0, + .register_offset => |base_reg_off| base_reg_off.off, + .lea_symbol => |base_sym_off| base_sym_off.off, + }, + .none => 0, + }, } }, } }, .mem => .{ .mem = try op.base.ref.valueOf(s).mem(s.cg, .{ .size = op.base.size, .index = switch (op.index.ref) { - else => |ref| registerAlias(ref.valueOf(s).register, @divExact(s.cg.target.ptrBitWidth(), 8)), + else => |index_ref| registerAlias(index_ref.valueOf(s).register, @divExact(s.cg.target.ptrBitWidth(), 8)), .none => .none, }, .scale = op.index.scale, @@ -89350,15 +94804,10 @@ fn select( @memcpy(s_src_temps[0..src_temps.len], src_temps); std.mem.swap(Temp, &s_src_temps[pattern.commute[0]], &s_src_temps[pattern.commute[1]]); - for (dst_temps, dst_tys, case.dst_temps[0..dst_temps.len]) |*dst_temp, dst_ty, dst_kind| { - if (dst_kind.pass() != 1) continue; - dst_temp.*, _ = try Select.TempSpec.create(.{ .type = dst_ty, .kind = dst_kind }, &s); - } - var tmp_owned: [s_tmp_temps.len]bool = @splat(false); - for (1..3) |pass| for (s_tmp_temps, &tmp_owned, case.extra_temps) |*temp, *owned, spec| { - if (spec.kind.pass() != pass) continue; - temp.*, owned.* = try spec.create(&s); - }; + var dst_locks: [s_dst_temps.len][2]?RegisterLock = @splat(@splat(null)); + for (dst_locks[0..dst_temps.len], case.dst_temps[0..dst_temps.len]) |*dst_lock, dst_kind| dst_lock.* = try dst_kind.lock(cg); + var tmp_locks: [s_tmp_temps.len][2]?RegisterLock = @splat(@splat(null)); + for (&tmp_locks, case.extra_temps) |*tmp_lock, tmp_spec| tmp_lock.* = try tmp_spec.kind.lock(cg); while (true) for (pattern.src[0..src_temps.len], src_temps) |src_pattern, *src_temp| { if (try src_pattern.convert(src_temp, cg)) break; @@ -89368,10 +94817,9 @@ fn select( if (case.clobbers.eflags) try cg.spillEflagsIfOccupied(); - for (dst_temps, dst_tys, case.dst_temps[0..dst_temps.len]) |*dst_temp, dst_ty, dst_kind| { - if (dst_kind.pass() != 2) continue; - dst_temp.*, _ = try Select.TempSpec.create(.{ .type = dst_ty, .kind = dst_kind }, &s); - } + var tmp_owned: [s_tmp_temps.len]bool = @splat(false); + for (s_tmp_temps, &tmp_owned, case.extra_temps) |*temp, *owned, tmp_spec| temp.*, owned.* = try tmp_spec.create(&s); + for (dst_temps, dst_tys, case.dst_temps[0..dst_temps.len]) |*dst_temp, dst_ty, tmp_kind| dst_temp.*, _ = try Select.TempSpec.create(.{ .type = dst_ty, .kind = tmp_kind }, &s); @memcpy(s_dst_temps[0..dst_temps.len], dst_temps); switch (case.each) { @@ -89382,6 +94830,8 @@ fn select( } assert(s.top == 0); + for (tmp_locks) |locks| for (locks) |lock| if (lock) |reg| cg.register_manager.unlockReg(reg); + for (dst_locks) |locks| for (locks) |lock| if (lock) |reg| cg.register_manager.unlockReg(reg); caller_preserved: { const cc = switch (case.clobbers.caller_preserved) { .none => break :caller_preserved, @@ -89400,7 +94850,7 @@ fn select( }, } } - for (dst_temps, case.dst_temps[0..dst_temps.len]) |dst_temp, dst_kind| dst_kind.finish(dst_temp, &s); + for (dst_temps, case.dst_temps[0..dst_temps.len]) |dst_temp, tmp_kind| tmp_kind.finish(dst_temp, cg); for (tmp_owned, s_tmp_temps) |owned, temp| if (owned) try temp.die(cg); return; } diff --git a/src/arch/x86_64/Emit.zig b/src/arch/x86_64/Emit.zig index bd5efec81c1b..e6f3f6541a64 100644 --- a/src/arch/x86_64/Emit.zig +++ b/src/arch/x86_64/Emit.zig @@ -88,13 +88,32 @@ pub fn emitMir(emit: *Emit) Error!void { lowered_relocs[0].lowered_inst_index == lowered_index) : ({ lowered_relocs = lowered_relocs[1..]; }) switch (lowered_relocs[0].target) { - .inst => |target| try relocs.append(emit.lower.allocator, .{ - .source = start_offset, - .source_offset = end_offset - 4, - .target = target, - .target_offset = lowered_relocs[0].off, - .length = @intCast(end_offset - start_offset), - }), + .inst => |target| { + const inst_length: u4 = @intCast(end_offset - start_offset); + const reloc_offset, const reloc_length = reloc_offset_length: { + var reloc_offset = inst_length; + var op_index: usize = lowered_inst.ops.len; + while (true) { + op_index -= 1; + const op = lowered_inst.encoding.data.ops[op_index]; + if (op == .none) continue; + const enc_length: u4 = @intCast( + std.math.divCeil(u7, @intCast(op.immBitSize()), 8) catch unreachable, + ); + reloc_offset -= enc_length; + if (op_index == lowered_relocs[0].op_index) + break :reloc_offset_length .{ reloc_offset, enc_length }; + } + }; + try relocs.append(emit.lower.allocator, .{ + .inst_offset = start_offset, + .inst_length = inst_length, + .source_offset = reloc_offset, + .source_length = reloc_length, + .target = target, + .target_offset = lowered_relocs[0].off, + }); + }, .table => try table_relocs.append(emit.lower.allocator, .{ .source_offset = end_offset - 4, .target_offset = lowered_relocs[0].off, @@ -409,7 +428,7 @@ pub fn emitMir(emit: *Emit) Error!void { } } }; }, .pseudo_dbg_local_am => loc: { - const mem = emit.lower.mem(mir_inst.data.ax.payload); + const mem = emit.lower.mem(undefined, mir_inst.data.ax.payload); break :loc .{ mir_inst.data.ax.air_inst, .{ .plus = .{ base: { loc_buf[0] = switch (mem.base()) { @@ -466,15 +485,18 @@ pub fn emitMir(emit: *Emit) Error!void { } } } - { - // TODO this function currently assumes all relocs via JMP/CALL instructions are 32bit in size. - // This should be reversed like it is done in aarch64 MIR emit code: start with the smallest - // possible resolution, i.e., 8bit, and iteratively converge on the minimum required resolution - // until the entire decl is correctly emitted with all JMP/CALL instructions within range. - for (relocs.items) |reloc| { - const target = code_offset_mapping[reloc.target]; - const disp = @as(i64, @intCast(target)) - @as(i64, @intCast(reloc.source + reloc.length)) + reloc.target_offset; - std.mem.writeInt(i32, emit.code.items[reloc.source_offset..][0..4], @intCast(disp), .little); + for (relocs.items) |reloc| { + const target = code_offset_mapping[reloc.target]; + const disp = @as(i64, @intCast(target)) - @as(i64, @intCast(reloc.inst_offset + reloc.inst_length)) + reloc.target_offset; + const inst_bytes = emit.code.items[reloc.inst_offset..][0..reloc.inst_length]; + switch (reloc.source_length) { + else => unreachable, + inline 1, 4 => |source_length| std.mem.writeInt( + @Type(.{ .int = .{ .signedness = .signed, .bits = @as(u16, 8) * source_length } }), + inst_bytes[reloc.source_offset..][0..source_length], + @intCast(disp), + .little, + ), } } if (emit.lower.mir.table.len > 0) { @@ -511,15 +533,17 @@ fn fail(emit: *Emit, comptime format: []const u8, args: anytype) Error { const Reloc = struct { /// Offset of the instruction. - source: u32, + inst_offset: u32, + /// Length of the instruction. + inst_length: u4, /// Offset of the relocation within the instruction. - source_offset: u32, + source_offset: u4, + /// Length of the relocation. + source_length: u4, /// Target of the relocation. target: Mir.Inst.Index, - /// Offset from the target instruction. + /// Offset from the target. target_offset: i32, - /// Length of the instruction. - length: u5, }; const TableReloc = struct { diff --git a/src/arch/x86_64/Encoding.zig b/src/arch/x86_64/Encoding.zig index 81fa28dcd51b..c4f7a310eea5 100644 --- a/src/arch/x86_64/Encoding.zig +++ b/src/arch/x86_64/Encoding.zig @@ -304,20 +304,20 @@ pub const Mnemonic = enum { jnc, jne, jng, jnge, jnl, jnle, jno, jnp, jns, jnz, jo, jp, jpe, jpo, jrcxz, js, jz, lahf, lar, lea, leave, lfence, lgdt, lidt, lldt, lmsw, loop, loope, loopne, lods, lodsb, lodsd, lodsq, lodsw, - lsl, ltr, lzcnt, + lsl, ltr, mfence, mov, movbe, movs, movsb, movsd, movsq, movsw, movsx, movsxd, movzx, mul, neg, nop, not, @"or", out, outs, outsb, outsd, outsw, - pause, pop, popcnt, popf, popfd, popfq, push, pushfq, + pause, pop, popf, popfd, popfq, push, pushfq, rcl, rcr, rdfsbase, rdgsbase, rdmsr, rdpid, rdpkru, rdpmc, rdrand, rdseed, rdssd, rdssq, rdtsc, rdtscp, - ret, rol, ror, rorx, rsm, - sahf, sal, sar, sarx, sbb, + ret, rol, ror, rsm, + sahf, sal, sar, sbb, scas, scasb, scasd, scasq, scasw, senduipi, serialize, - shl, shld, shlx, shr, shrd, shrx, + shl, shld, shr, shrd, stac, stc, std, sti, str, stui, sub, swapgs, syscall, sysenter, sysexit, sysret, seta, setae, setb, setbe, setc, sete, setg, setge, setl, setle, setna, setnae, @@ -433,6 +433,8 @@ pub const Mnemonic = enum { roundpd, roundps, roundsd, roundss, // SSE4.2 crc32, pcmpgtq, + // ABM + lzcnt, popcnt, // PCLMUL pclmulqdq, // AES @@ -440,7 +442,6 @@ pub const Mnemonic = enum { // SHA sha1rnds4, sha1nexte, sha1msg1, sha1msg2, sha256msg1, sha256msg2, sha256rnds2, // AVX - andn, bextr, blsi, blsmsk, blsr, bzhi, tzcnt, vaddpd, vaddps, vaddsd, vaddss, vaddsubpd, vaddsubps, vaesdec, vaesdeclast, vaesenc, vaesenclast, vaesimc, vaeskeygenassist, vandnpd, vandnps, vandpd, vandps, @@ -506,6 +507,10 @@ pub const Mnemonic = enum { vtestpd, vtestps, vucomisd, vucomiss, vunpckhpd, vunpckhps, vunpcklpd, vunpcklps, vxorpd, vxorps, + // BMI + andn, bextr, blsi, blsmsk, blsr, tzcnt, + // BMI2 + bzhi, mulx, pdep, pext, rorx, sarx, shlx, shrx, // F16C vcvtph2ps, vcvtps2ph, // FMA diff --git a/src/arch/x86_64/Lower.zig b/src/arch/x86_64/Lower.zig index 15b83ccf23c2..6a8b5efcf86d 100644 --- a/src/arch/x86_64/Lower.zig +++ b/src/arch/x86_64/Lower.zig @@ -10,32 +10,38 @@ mir: Mir, cc: std.builtin.CallingConvention, err_msg: ?*Zcu.ErrorMsg = null, src_loc: Zcu.LazySrcLoc, -result_insts_len: u8 = undefined, -result_relocs_len: u8 = undefined, -result_insts: [ - @max( - 1, // non-pseudo instructions - 3, // (ELF only) TLS local dynamic (LD) sequence in PIC mode - 2, // cmovcc: cmovcc \ cmovcc - 3, // setcc: setcc \ setcc \ logicop - 2, // jcc: jcc \ jcc - pseudo_probe_align_insts, - pseudo_probe_adjust_unrolled_max_insts, - pseudo_probe_adjust_setup_insts, - pseudo_probe_adjust_loop_insts, - abi.Win64.callee_preserved_regs.len * 2, // push_regs/pop_regs - abi.SysV.callee_preserved_regs.len * 2, // push_regs/pop_regs - ) -]Instruction = undefined, -result_relocs: [ - @max( - 1, // jmp/jcc/call/mov/lea: jmp/jcc/call/mov/lea - 2, // jcc: jcc \ jcc - 2, // test \ jcc \ probe \ sub \ jmp - 1, // probe \ sub \ jcc - 3, // (ELF only) TLS local dynamic (LD) sequence in PIC mode - ) -]Reloc = undefined, +result_insts_len: ResultInstIndex = undefined, +result_insts: [max_result_insts]Instruction = undefined, +result_relocs_len: ResultRelocIndex = undefined, +result_relocs: [max_result_relocs]Reloc = undefined, + +const max_result_insts = @max( + 1, // non-pseudo instructions + 3, // (ELF only) TLS local dynamic (LD) sequence in PIC mode + 2, // cmovcc: cmovcc \ cmovcc + 3, // setcc: setcc \ setcc \ logicop + 2, // jcc: jcc \ jcc + pseudo_probe_align_insts, + pseudo_probe_adjust_unrolled_max_insts, + pseudo_probe_adjust_setup_insts, + pseudo_probe_adjust_loop_insts, + abi.Win64.callee_preserved_regs.len * 2, // push_regs/pop_regs + abi.SysV.callee_preserved_regs.len * 2, // push_regs/pop_regs +); +const max_result_relocs = @max( + 1, // jmp/jcc/call/mov/lea: jmp/jcc/call/mov/lea + 2, // jcc: jcc \ jcc + 2, // test \ jcc \ probe \ sub \ jmp + 1, // probe \ sub \ jcc + 3, // (ELF only) TLS local dynamic (LD) sequence in PIC mode +); + +const ResultInstIndex = std.math.IntFittingRange(0, max_result_insts - 1); +const ResultRelocIndex = std.math.IntFittingRange(0, max_result_relocs - 1); +const InstOpIndex = std.math.IntFittingRange( + 0, + @typeInfo(@FieldType(Instruction, "ops")).array.len - 1, +); pub const pseudo_probe_align_insts = 5; // test \ jcc \ probe \ sub \ jmp pub const pseudo_probe_adjust_unrolled_max_insts = @@ -51,7 +57,8 @@ pub const Error = error{ }; pub const Reloc = struct { - lowered_inst_index: u8, + lowered_inst_index: ResultInstIndex, + op_index: InstOpIndex, target: Target, off: i32, @@ -114,11 +121,11 @@ pub fn lowerMir(lower: *Lower, index: Mir.Inst.Index) Error!struct { assert(inst.data.rx.fixes == ._); try lower.emit(.none, .cmovnz, &.{ .{ .reg = inst.data.rx.r1 }, - .{ .mem = lower.mem(inst.data.rx.payload) }, + .{ .mem = lower.mem(1, inst.data.rx.payload) }, }); try lower.emit(.none, .cmovp, &.{ .{ .reg = inst.data.rx.r1 }, - .{ .mem = lower.mem(inst.data.rx.payload) }, + .{ .mem = lower.mem(1, inst.data.rx.payload) }, }); }, .pseudo_set_z_and_np_r => { @@ -137,13 +144,13 @@ pub fn lowerMir(lower: *Lower, index: Mir.Inst.Index) Error!struct { .pseudo_set_z_and_np_m => { assert(inst.data.rx.fixes == ._); try lower.emit(.none, .setz, &.{ - .{ .mem = lower.mem(inst.data.rx.payload) }, + .{ .mem = lower.mem(0, inst.data.rx.payload) }, }); try lower.emit(.none, .setnp, &.{ .{ .reg = inst.data.rx.r1 }, }); try lower.emit(.none, .@"and", &.{ - .{ .mem = lower.mem(inst.data.rx.payload) }, + .{ .mem = lower.mem(0, inst.data.rx.payload) }, .{ .reg = inst.data.rx.r1 }, }); }, @@ -163,32 +170,32 @@ pub fn lowerMir(lower: *Lower, index: Mir.Inst.Index) Error!struct { .pseudo_set_nz_or_p_m => { assert(inst.data.rx.fixes == ._); try lower.emit(.none, .setnz, &.{ - .{ .mem = lower.mem(inst.data.rx.payload) }, + .{ .mem = lower.mem(0, inst.data.rx.payload) }, }); try lower.emit(.none, .setp, &.{ .{ .reg = inst.data.rx.r1 }, }); try lower.emit(.none, .@"or", &.{ - .{ .mem = lower.mem(inst.data.rx.payload) }, + .{ .mem = lower.mem(0, inst.data.rx.payload) }, .{ .reg = inst.data.rx.r1 }, }); }, .pseudo_j_z_and_np_inst => { assert(inst.data.inst.fixes == ._); try lower.emit(.none, .jnz, &.{ - .{ .imm = lower.reloc(.{ .inst = index + 1 }, 0) }, + .{ .imm = lower.reloc(0, .{ .inst = index + 1 }, 0) }, }); try lower.emit(.none, .jnp, &.{ - .{ .imm = lower.reloc(.{ .inst = inst.data.inst.inst }, 0) }, + .{ .imm = lower.reloc(0, .{ .inst = inst.data.inst.inst }, 0) }, }); }, .pseudo_j_nz_or_p_inst => { assert(inst.data.inst.fixes == ._); try lower.emit(.none, .jnz, &.{ - .{ .imm = lower.reloc(.{ .inst = inst.data.inst.inst }, 0) }, + .{ .imm = lower.reloc(0, .{ .inst = inst.data.inst.inst }, 0) }, }); try lower.emit(.none, .jp, &.{ - .{ .imm = lower.reloc(.{ .inst = inst.data.inst.inst }, 0) }, + .{ .imm = lower.reloc(0, .{ .inst = inst.data.inst.inst }, 0) }, }); }, @@ -198,7 +205,7 @@ pub fn lowerMir(lower: *Lower, index: Mir.Inst.Index) Error!struct { .{ .imm = .s(@bitCast(inst.data.ri.i)) }, }); try lower.emit(.none, .jz, &.{ - .{ .imm = lower.reloc(.{ .inst = index + 1 }, 0) }, + .{ .imm = lower.reloc(0, .{ .inst = index + 1 }, 0) }, }); try lower.emit(.none, .lea, &.{ .{ .reg = inst.data.ri.r1 }, @@ -214,7 +221,7 @@ pub fn lowerMir(lower: *Lower, index: Mir.Inst.Index) Error!struct { .{ .reg = inst.data.ri.r1.to32() }, }); try lower.emit(.none, .jmp, &.{ - .{ .imm = lower.reloc(.{ .inst = index }, 0) }, + .{ .imm = lower.reloc(0, .{ .inst = index }, 0) }, }); assert(lower.result_insts_len == pseudo_probe_align_insts); }, @@ -260,7 +267,7 @@ pub fn lowerMir(lower: *Lower, index: Mir.Inst.Index) Error!struct { .{ .imm = .s(page_size) }, }); try lower.emit(.none, .jae, &.{ - .{ .imm = lower.reloc(.{ .inst = index }, 0) }, + .{ .imm = lower.reloc(0, .{ .inst = index }, 0) }, }); assert(lower.result_insts_len == pseudo_probe_adjust_loop_insts); }, @@ -382,21 +389,22 @@ pub fn imm(lower: *const Lower, ops: Mir.Inst.Ops, i: u32) Immediate { }; } -pub fn mem(lower: *Lower, payload: u32) Memory { +pub fn mem(lower: *Lower, op_index: InstOpIndex, payload: u32) Memory { var m = lower.mir.resolveFrameLoc(lower.mir.extraData(Mir.Memory, payload).data).decode(); switch (m) { .sib => |*sib| switch (sib.base) { else => {}, - .table => sib.disp = lower.reloc(.table, sib.disp).signed, + .table => sib.disp = lower.reloc(op_index, .table, sib.disp).signed, }, else => {}, } return m; } -fn reloc(lower: *Lower, target: Reloc.Target, off: i32) Immediate { +fn reloc(lower: *Lower, op_index: InstOpIndex, target: Reloc.Target, off: i32) Immediate { lower.result_relocs[lower.result_relocs_len] = .{ .lowered_inst_index = lower.result_insts_len, + .op_index = op_index, .target = target, .off = off, }; @@ -409,7 +417,7 @@ fn emit(lower: *Lower, prefix: Prefix, mnemonic: Mnemonic, ops: []const Operand) var emit_mnemonic = mnemonic; var emit_ops_storage: [4]Operand = undefined; const emit_ops = emit_ops_storage[0..ops.len]; - for (emit_ops, ops) |*emit_op, op| { + for (emit_ops, ops, 0..) |*emit_op, op, op_index| { emit_op.* = switch (op) { else => op, .mem => |mem_op| switch (mem_op.base()) { @@ -428,22 +436,22 @@ fn emit(lower: *Lower, prefix: Prefix, mnemonic: Mnemonic, ops: []const Operand) if (lower.pic) { // Here, we currently assume local dynamic TLS vars, and so // we emit LD model. - _ = lower.reloc(.{ .linker_tlsld = sym_index }, 0); + _ = lower.reloc(1, .{ .linker_tlsld = sym_index }, 0); lower.result_insts[lower.result_insts_len] = try .new(.none, .lea, &.{ .{ .reg = .rdi }, - .{ .mem = Memory.initRip(mem_op.sib.ptr_size, 0) }, + .{ .mem = Memory.initRip(.none, 0) }, }, lower.target); lower.result_insts_len += 1; - _ = lower.reloc(.{ + _ = lower.reloc(0, .{ .linker_extern_fn = try elf_file.getGlobalSymbol("__tls_get_addr", null), }, 0); lower.result_insts[lower.result_insts_len] = try .new(.none, .call, &.{ .{ .imm = .s(0) }, }, lower.target); lower.result_insts_len += 1; - _ = lower.reloc(.{ .linker_dtpoff = sym_index }, 0); + _ = lower.reloc(@intCast(op_index), .{ .linker_dtpoff = sym_index }, 0); emit_mnemonic = .lea; - break :op .{ .mem = Memory.initSib(mem_op.sib.ptr_size, .{ + break :op .{ .mem = Memory.initSib(.none, .{ .base = .{ .reg = .rax }, .disp = std.math.minInt(i32), }) }; @@ -454,24 +462,26 @@ fn emit(lower: *Lower, prefix: Prefix, mnemonic: Mnemonic, ops: []const Operand) .{ .mem = Memory.initSib(.qword, .{ .base = .{ .reg = .fs } }) }, }, lower.target); lower.result_insts_len += 1; - _ = lower.reloc(.{ .linker_reloc = sym_index }, 0); + _ = lower.reloc(@intCast(op_index), .{ .linker_reloc = sym_index }, 0); emit_mnemonic = .lea; - break :op .{ .mem = Memory.initSib(mem_op.sib.ptr_size, .{ + break :op .{ .mem = Memory.initSib(.none, .{ .base = .{ .reg = .rax }, .disp = std.math.minInt(i32), }) }; } } - _ = lower.reloc(.{ .linker_reloc = sym_index }, 0); if (lower.pic) switch (mnemonic) { .lea => { - if (elf_sym.flags.is_extern_ptr) emit_mnemonic = .mov; - break :op .{ .mem = Memory.initRip(mem_op.sib.ptr_size, 0) }; + _ = lower.reloc(@intCast(op_index), .{ .linker_reloc = sym_index }, 0); + if (!elf_sym.flags.is_extern_ptr) break :op .{ .mem = Memory.initRip(.none, 0) }; + emit_mnemonic = .mov; + break :op .{ .mem = Memory.initRip(.ptr, 0) }; }, .mov => { if (elf_sym.flags.is_extern_ptr) { const reg = ops[0].reg; + _ = lower.reloc(1, .{ .linker_reloc = sym_index }, 0); lower.result_insts[lower.result_insts_len] = try .new(.none, .mov, &.{ .{ .reg = reg.to64() }, .{ .mem = Memory.initRip(.qword, 0) }, @@ -481,10 +491,13 @@ fn emit(lower: *Lower, prefix: Prefix, mnemonic: Mnemonic, ops: []const Operand) .reg = reg.to64(), } }) }; } + _ = lower.reloc(@intCast(op_index), .{ .linker_reloc = sym_index }, 0); break :op .{ .mem = Memory.initRip(mem_op.sib.ptr_size, 0) }; }, else => unreachable, - } else switch (mnemonic) { + }; + _ = lower.reloc(@intCast(op_index), .{ .linker_reloc = sym_index }, 0); + switch (mnemonic) { .call => break :op .{ .mem = Memory.initSib(mem_op.sib.ptr_size, .{ .base = .{ .reg = .ds }, }) }, @@ -502,10 +515,10 @@ fn emit(lower: *Lower, prefix: Prefix, mnemonic: Mnemonic, ops: []const Operand) const macho_sym = zo.symbols.items[sym_index]; if (macho_sym.flags.tlv) { - _ = lower.reloc(.{ .linker_reloc = sym_index }, 0); + _ = lower.reloc(1, .{ .linker_reloc = sym_index }, 0); lower.result_insts[lower.result_insts_len] = try .new(.none, .mov, &.{ .{ .reg = .rdi }, - .{ .mem = Memory.initRip(mem_op.sib.ptr_size, 0) }, + .{ .mem = Memory.initRip(.ptr, 0) }, }, lower.target); lower.result_insts_len += 1; lower.result_insts[lower.result_insts_len] = try .new(.none, .call, &.{ @@ -516,15 +529,17 @@ fn emit(lower: *Lower, prefix: Prefix, mnemonic: Mnemonic, ops: []const Operand) break :op .{ .reg = .rax }; } - _ = lower.reloc(.{ .linker_reloc = sym_index }, 0); break :op switch (mnemonic) { .lea => { - if (macho_sym.flags.is_extern_ptr) emit_mnemonic = .mov; - break :op .{ .mem = Memory.initRip(mem_op.sib.ptr_size, 0) }; + _ = lower.reloc(@intCast(op_index), .{ .linker_reloc = sym_index }, 0); + if (!macho_sym.flags.is_extern_ptr) break :op .{ .mem = Memory.initRip(.none, 0) }; + emit_mnemonic = .mov; + break :op .{ .mem = Memory.initRip(.ptr, 0) }; }, .mov => { if (macho_sym.flags.is_extern_ptr) { const reg = ops[0].reg; + _ = lower.reloc(1, .{ .linker_reloc = sym_index }, 0); lower.result_insts[lower.result_insts_len] = try .new(.none, .mov, &.{ .{ .reg = reg.to64() }, .{ .mem = Memory.initRip(.qword, 0) }, @@ -534,6 +549,7 @@ fn emit(lower: *Lower, prefix: Prefix, mnemonic: Mnemonic, ops: []const Operand) .reg = reg.to64(), } }) }; } + _ = lower.reloc(@intCast(op_index), .{ .linker_reloc = sym_index }, 0); break :op .{ .mem = Memory.initRip(mem_op.sib.ptr_size, 0) }; }, else => unreachable, @@ -550,7 +566,7 @@ fn emit(lower: *Lower, prefix: Prefix, mnemonic: Mnemonic, ops: []const Operand) } fn generic(lower: *Lower, inst: Mir.Inst) Error!void { - @setEvalBranchQuota(2_400); + @setEvalBranchQuota(2_500); const fixes = switch (inst.ops) { .none => inst.data.none.fixes, .inst => inst.data.inst.fixes, @@ -595,7 +611,7 @@ fn generic(lower: *Lower, inst: Mir.Inst) Error!void { }, switch (inst.ops) { .none => &.{}, .inst => &.{ - .{ .imm = lower.reloc(.{ .inst = inst.data.inst.inst }, 0) }, + .{ .imm = lower.reloc(0, .{ .inst = inst.data.inst.inst }, 0) }, }, .i_s, .i_u => &.{ .{ .imm = lower.imm(inst.ops, inst.data.i.i) }, @@ -642,10 +658,10 @@ fn generic(lower: *Lower, inst: Mir.Inst) Error!void { .{ .imm = lower.imm(inst.ops, inst.data.rri.i) }, }, .m => &.{ - .{ .mem = lower.mem(inst.data.x.payload) }, + .{ .mem = lower.mem(0, inst.data.x.payload) }, }, .mi_s, .mi_u => &.{ - .{ .mem = lower.mem(inst.data.x.payload + 1) }, + .{ .mem = lower.mem(0, inst.data.x.payload + 1) }, .{ .imm = lower.imm( inst.ops, lower.mir.extraData(Mir.Imm32, inst.data.x.payload).data.imm, @@ -653,64 +669,64 @@ fn generic(lower: *Lower, inst: Mir.Inst) Error!void { }, .rm => &.{ .{ .reg = inst.data.rx.r1 }, - .{ .mem = lower.mem(inst.data.rx.payload) }, + .{ .mem = lower.mem(1, inst.data.rx.payload) }, }, .rmr => &.{ .{ .reg = inst.data.rrx.r1 }, - .{ .mem = lower.mem(inst.data.rrx.payload) }, + .{ .mem = lower.mem(1, inst.data.rrx.payload) }, .{ .reg = inst.data.rrx.r2 }, }, .rmi => &.{ .{ .reg = inst.data.rix.r1 }, - .{ .mem = lower.mem(inst.data.rix.payload) }, + .{ .mem = lower.mem(1, inst.data.rix.payload) }, .{ .imm = lower.imm(inst.ops, inst.data.rix.i) }, }, .rmi_s, .rmi_u => &.{ .{ .reg = inst.data.rx.r1 }, - .{ .mem = lower.mem(inst.data.rx.payload + 1) }, + .{ .mem = lower.mem(1, inst.data.rx.payload + 1) }, .{ .imm = lower.imm( inst.ops, lower.mir.extraData(Mir.Imm32, inst.data.rx.payload).data.imm, ) }, }, .mr => &.{ - .{ .mem = lower.mem(inst.data.rx.payload) }, + .{ .mem = lower.mem(0, inst.data.rx.payload) }, .{ .reg = inst.data.rx.r1 }, }, .mrr => &.{ - .{ .mem = lower.mem(inst.data.rrx.payload) }, + .{ .mem = lower.mem(0, inst.data.rrx.payload) }, .{ .reg = inst.data.rrx.r1 }, .{ .reg = inst.data.rrx.r2 }, }, .mri => &.{ - .{ .mem = lower.mem(inst.data.rix.payload) }, + .{ .mem = lower.mem(0, inst.data.rix.payload) }, .{ .reg = inst.data.rix.r1 }, .{ .imm = lower.imm(inst.ops, inst.data.rix.i) }, }, .rrm => &.{ .{ .reg = inst.data.rrx.r1 }, .{ .reg = inst.data.rrx.r2 }, - .{ .mem = lower.mem(inst.data.rrx.payload) }, + .{ .mem = lower.mem(2, inst.data.rrx.payload) }, }, .rrmr => &.{ .{ .reg = inst.data.rrrx.r1 }, .{ .reg = inst.data.rrrx.r2 }, - .{ .mem = lower.mem(inst.data.rrrx.payload) }, + .{ .mem = lower.mem(2, inst.data.rrrx.payload) }, .{ .reg = inst.data.rrrx.r3 }, }, .rrmi => &.{ .{ .reg = inst.data.rrix.r1 }, .{ .reg = inst.data.rrix.r2 }, - .{ .mem = lower.mem(inst.data.rrix.payload) }, + .{ .mem = lower.mem(2, inst.data.rrix.payload) }, .{ .imm = lower.imm(inst.ops, inst.data.rrix.i) }, }, .extern_fn_reloc, .rel => &.{ - .{ .imm = lower.reloc(.{ .linker_extern_fn = inst.data.reloc.sym_index }, inst.data.reloc.off) }, + .{ .imm = lower.reloc(0, .{ .linker_extern_fn = inst.data.reloc.sym_index }, inst.data.reloc.off) }, }, .got_reloc, .direct_reloc, .import_reloc => ops: { const reg = inst.data.rx.r1; const extra = lower.mir.extraData(bits.SymbolOffset, inst.data.rx.payload).data; - _ = lower.reloc(switch (inst.ops) { + _ = lower.reloc(1, switch (inst.ops) { .got_reloc => .{ .linker_got = extra.sym_index }, .direct_reloc => .{ .linker_direct = extra.sym_index }, .import_reloc => .{ .linker_import = extra.sym_index }, diff --git a/src/arch/x86_64/Mir.zig b/src/arch/x86_64/Mir.zig index b03e363903e5..c9482d0890c5 100644 --- a/src/arch/x86_64/Mir.zig +++ b/src/arch/x86_64/Mir.zig @@ -100,6 +100,8 @@ pub const Inst = struct { /// ___ Division _d, + /// ___ Without Affecting Flags + _x, /// ___ Left _l, /// ___ Left Double @@ -483,6 +485,7 @@ pub const Inst = struct { /// ASCII adjust al after subtraction aa, /// Add with carry + /// Unsigned integer addition of two operands with carry flag adc, /// Add /// Add packed integers @@ -1162,10 +1165,8 @@ pub const Inst = struct { fmadd231, // ADX - /// Unsigned integer addition of two operands with carry flag - adcx, /// Unsigned integer addition of two operands with overflow flag - adox, + ado, // AESKLE /// Encode 128-bit key with key locker diff --git a/src/arch/x86_64/encodings.zig b/src/arch/x86_64/encodings.zig index f8d7779a8d82..2dcacd9ad5cd 100644 --- a/src/arch/x86_64/encodings.zig +++ b/src/arch/x86_64/encodings.zig @@ -405,9 +405,9 @@ pub const table = [_]Entry{ .{ .jb, .d, &.{ .rel32 }, &.{ 0x0f, 0x82 }, 0, .none, .none }, .{ .jbe, .d, &.{ .rel32 }, &.{ 0x0f, 0x86 }, 0, .none, .none }, .{ .jc, .d, &.{ .rel32 }, &.{ 0x0f, 0x82 }, 0, .none, .none }, - .{ .jcxz, .d, &.{ .rel32 }, &.{ 0xe3 }, 0, .short, .@"32bit" }, - .{ .jecxz, .d, &.{ .rel32 }, &.{ 0xe3 }, 0, .none, .@"32bit" }, - .{ .jrcxz, .d, &.{ .rel32 }, &.{ 0xe3 }, 0, .none, .@"64bit" }, + .{ .jcxz, .d, &.{ .rel8 }, &.{ 0xe3 }, 0, .short, .@"32bit" }, + .{ .jecxz, .d, &.{ .rel8 }, &.{ 0xe3 }, 0, .none, .@"32bit" }, + .{ .jrcxz, .d, &.{ .rel8 }, &.{ 0xe3 }, 0, .none, .@"64bit" }, .{ .je, .d, &.{ .rel32 }, &.{ 0x0f, 0x84 }, 0, .none, .none }, .{ .jg, .d, &.{ .rel32 }, &.{ 0x0f, 0x8f }, 0, .none, .none }, .{ .jge, .d, &.{ .rel32 }, &.{ 0x0f, 0x8d }, 0, .none, .none }, @@ -477,10 +477,6 @@ pub const table = [_]Entry{ .{ .ltr, .m, &.{ .rm16 }, &.{ 0x0f, 0x00 }, 3, .none, .none }, - .{ .lzcnt, .rm, &.{ .r16, .rm16 }, &.{ 0xf3, 0x0f, 0xbd }, 0, .short, .lzcnt }, - .{ .lzcnt, .rm, &.{ .r32, .rm32 }, &.{ 0xf3, 0x0f, 0xbd }, 0, .none, .lzcnt }, - .{ .lzcnt, .rm, &.{ .r64, .rm64 }, &.{ 0xf3, 0x0f, 0xbd }, 0, .long, .lzcnt }, - .{ .mfence, .z, &.{}, &.{ 0x0f, 0xae, 0xf0 }, 0, .none, .none }, .{ .mov, .mr, &.{ .rm8, .r8 }, &.{ 0x88 }, 0, .none, .none }, @@ -630,10 +626,6 @@ pub const table = [_]Entry{ .{ .pop, .m, &.{ .rm16 }, &.{ 0x8f }, 0, .short, .none }, .{ .pop, .m, &.{ .rm64 }, &.{ 0x8f }, 0, .none, .none }, - .{ .popcnt, .rm, &.{ .r16, .rm16 }, &.{ 0xf3, 0x0f, 0xb8 }, 0, .short, .popcnt }, - .{ .popcnt, .rm, &.{ .r32, .rm32 }, &.{ 0xf3, 0x0f, 0xb8 }, 0, .none, .popcnt }, - .{ .popcnt, .rm, &.{ .r64, .rm64 }, &.{ 0xf3, 0x0f, 0xb8 }, 0, .long, .popcnt }, - .{ .popf, .z, &.{}, &.{ 0x9d }, 0, .short, .none }, .{ .popfd, .z, &.{}, &.{ 0x9d }, 0, .none, .@"32bit" }, .{ .popfq, .z, &.{}, &.{ 0x9d }, 0, .none, .@"64bit" }, @@ -1738,6 +1730,15 @@ pub const table = [_]Entry{ .{ .pcmpgtq, .rm, &.{ .xmm, .xmm_m128 }, &.{ 0x66, 0x0f, 0x38, 0x37 }, 0, .none, .sse4_2 }, + // ABM + .{ .lzcnt, .rm, &.{ .r16, .rm16 }, &.{ 0xf3, 0x0f, 0xbd }, 0, .short, .lzcnt }, + .{ .lzcnt, .rm, &.{ .r32, .rm32 }, &.{ 0xf3, 0x0f, 0xbd }, 0, .none, .lzcnt }, + .{ .lzcnt, .rm, &.{ .r64, .rm64 }, &.{ 0xf3, 0x0f, 0xbd }, 0, .long, .lzcnt }, + + .{ .popcnt, .rm, &.{ .r16, .rm16 }, &.{ 0xf3, 0x0f, 0xb8 }, 0, .short, .popcnt }, + .{ .popcnt, .rm, &.{ .r32, .rm32 }, &.{ 0xf3, 0x0f, 0xb8 }, 0, .none, .popcnt }, + .{ .popcnt, .rm, &.{ .r64, .rm64 }, &.{ 0xf3, 0x0f, 0xb8 }, 0, .long, .popcnt }, + // PCLMUL .{ .pclmulqdq, .rmi, &.{ .xmm, .xmm_m128, .imm8 }, &.{ 0x66, 0x0f, 0x3a, 0x44 }, 0, .none, .pclmul }, @@ -1771,38 +1772,6 @@ pub const table = [_]Entry{ .{ .sha256msg2, .rm, &.{ .xmm, .xmm_m128 }, &.{ 0x0f, 0x38, 0xcd }, 0, .none, .sha }, // AVX - .{ .andn, .rvm, &.{ .r32, .r32, .rm32 }, &.{ 0x0f, 0x38, 0xf2 }, 0, .vex_lz_w0, .bmi }, - .{ .andn, .rvm, &.{ .r64, .r64, .rm64 }, &.{ 0x0f, 0x38, 0xf2 }, 0, .vex_lz_w1, .bmi }, - - .{ .bextr, .rmv, &.{ .r32, .rm32, .r32 }, &.{ 0x0f, 0x38, 0xf7 }, 0, .vex_lz_w0, .bmi }, - .{ .bextr, .rmv, &.{ .r64, .rm64, .r64 }, &.{ 0x0f, 0x38, 0xf7 }, 0, .vex_lz_w1, .bmi }, - - .{ .blsi, .vm, &.{ .r32, .rm32 }, &.{ 0x0f, 0x38, 0xf3 }, 3, .vex_lz_w0, .bmi }, - .{ .blsi, .vm, &.{ .r64, .rm64 }, &.{ 0x0f, 0x38, 0xf3 }, 3, .vex_lz_w1, .bmi }, - - .{ .blsmsk, .vm, &.{ .r32, .rm32 }, &.{ 0x0f, 0x38, 0xf3 }, 2, .vex_lz_w0, .bmi }, - .{ .blsmsk, .vm, &.{ .r64, .rm64 }, &.{ 0x0f, 0x38, 0xf3 }, 2, .vex_lz_w1, .bmi }, - - .{ .blsr, .vm, &.{ .r32, .rm32 }, &.{ 0x0f, 0x38, 0xf3 }, 1, .vex_lz_w0, .bmi }, - .{ .blsr, .vm, &.{ .r64, .rm64 }, &.{ 0x0f, 0x38, 0xf3 }, 1, .vex_lz_w1, .bmi }, - - .{ .bzhi, .rmv, &.{ .r32, .rm32, .r32 }, &.{ 0x0f, 0x38, 0xf5 }, 0, .vex_lz_w0, .bmi2 }, - .{ .bzhi, .rmv, &.{ .r64, .rm64, .r64 }, &.{ 0x0f, 0x38, 0xf5 }, 0, .vex_lz_w1, .bmi2 }, - - .{ .rorx, .rmi, &.{ .r32, .rm32, .imm8 }, &.{ 0xf2, 0x0f, 0x3a }, 0, .vex_lz_w0, .bmi2 }, - .{ .rorx, .rmi, &.{ .r64, .rm64, .imm8 }, &.{ 0xf2, 0x0f, 0x3a }, 0, .vex_lz_w1, .bmi2 }, - - .{ .sarx, .rmv, &.{ .r32, .rm32, .r32 }, &.{ 0xf3, 0x0f, 0x38, 0xf7 }, 0, .vex_lz_w0, .bmi2 }, - .{ .shlx, .rmv, &.{ .r32, .rm32, .r32 }, &.{ 0x66, 0x0f, 0x38, 0xf7 }, 0, .vex_lz_w0, .bmi2 }, - .{ .shrx, .rmv, &.{ .r32, .rm32, .r32 }, &.{ 0xf2, 0x0f, 0x38, 0xf7 }, 0, .vex_lz_w0, .bmi2 }, - .{ .sarx, .rmv, &.{ .r64, .rm64, .r64 }, &.{ 0xf3, 0x0f, 0x38, 0xf7 }, 0, .vex_lz_w1, .bmi2 }, - .{ .shlx, .rmv, &.{ .r64, .rm64, .r64 }, &.{ 0x66, 0x0f, 0x38, 0xf7 }, 0, .vex_lz_w1, .bmi2 }, - .{ .shrx, .rmv, &.{ .r64, .rm64, .r64 }, &.{ 0xf2, 0x0f, 0x38, 0xf7 }, 0, .vex_lz_w1, .bmi2 }, - - .{ .tzcnt, .rm, &.{ .r16, .rm16 }, &.{ 0xf3, 0x0f, 0xbc }, 0, .short, .bmi }, - .{ .tzcnt, .rm, &.{ .r32, .rm32 }, &.{ 0xf3, 0x0f, 0xbc }, 0, .none, .bmi }, - .{ .tzcnt, .rm, &.{ .r64, .rm64 }, &.{ 0xf3, 0x0f, 0xbc }, 0, .long, .bmi }, - .{ .vaddpd, .rvm, &.{ .xmm, .xmm, .xmm_m128 }, &.{ 0x66, 0x0f, 0x58 }, 0, .vex_128_wig, .avx }, .{ .vaddpd, .rvm, &.{ .ymm, .ymm, .ymm_m256 }, &.{ 0x66, 0x0f, 0x58 }, 0, .vex_256_wig, .avx }, @@ -2307,6 +2276,49 @@ pub const table = [_]Entry{ .{ .vxorps, .rvm, &.{ .xmm, .xmm, .xmm_m128 }, &.{ 0x0f, 0x57 }, 0, .vex_128_wig, .avx }, .{ .vxorps, .rvm, &.{ .ymm, .ymm, .ymm_m256 }, &.{ 0x0f, 0x57 }, 0, .vex_256_wig, .avx }, + // BMI + .{ .andn, .rvm, &.{ .r32, .r32, .rm32 }, &.{ 0x0f, 0x38, 0xf2 }, 0, .vex_lz_w0, .bmi }, + .{ .andn, .rvm, &.{ .r64, .r64, .rm64 }, &.{ 0x0f, 0x38, 0xf2 }, 0, .vex_lz_w1, .bmi }, + + .{ .bextr, .rmv, &.{ .r32, .rm32, .r32 }, &.{ 0x0f, 0x38, 0xf7 }, 0, .vex_lz_w0, .bmi }, + .{ .bextr, .rmv, &.{ .r64, .rm64, .r64 }, &.{ 0x0f, 0x38, 0xf7 }, 0, .vex_lz_w1, .bmi }, + + .{ .blsi, .vm, &.{ .r32, .rm32 }, &.{ 0x0f, 0x38, 0xf3 }, 3, .vex_lz_w0, .bmi }, + .{ .blsi, .vm, &.{ .r64, .rm64 }, &.{ 0x0f, 0x38, 0xf3 }, 3, .vex_lz_w1, .bmi }, + + .{ .blsmsk, .vm, &.{ .r32, .rm32 }, &.{ 0x0f, 0x38, 0xf3 }, 2, .vex_lz_w0, .bmi }, + .{ .blsmsk, .vm, &.{ .r64, .rm64 }, &.{ 0x0f, 0x38, 0xf3 }, 2, .vex_lz_w1, .bmi }, + + .{ .blsr, .vm, &.{ .r32, .rm32 }, &.{ 0x0f, 0x38, 0xf3 }, 1, .vex_lz_w0, .bmi }, + .{ .blsr, .vm, &.{ .r64, .rm64 }, &.{ 0x0f, 0x38, 0xf3 }, 1, .vex_lz_w1, .bmi }, + + .{ .tzcnt, .rm, &.{ .r16, .rm16 }, &.{ 0xf3, 0x0f, 0xbc }, 0, .short, .bmi }, + .{ .tzcnt, .rm, &.{ .r32, .rm32 }, &.{ 0xf3, 0x0f, 0xbc }, 0, .none, .bmi }, + .{ .tzcnt, .rm, &.{ .r64, .rm64 }, &.{ 0xf3, 0x0f, 0xbc }, 0, .long, .bmi }, + + // BMI2 + .{ .bzhi, .rmv, &.{ .r32, .rm32, .r32 }, &.{ 0x0f, 0x38, 0xf5 }, 0, .vex_lz_w0, .bmi2 }, + .{ .bzhi, .rmv, &.{ .r64, .rm64, .r64 }, &.{ 0x0f, 0x38, 0xf5 }, 0, .vex_lz_w1, .bmi2 }, + + .{ .mulx, .rvm, &.{ .r32, .r32, .rm32 }, &.{ 0xf2, 0x0f, 0x38, 0xf6 }, 0, .vex_lz_w0, .bmi2 }, + .{ .mulx, .rvm, &.{ .r64, .r64, .rm64 }, &.{ 0xf2, 0x0f, 0x38, 0xf6 }, 0, .vex_lz_w1, .bmi2 }, + + .{ .pdep, .rvm, &.{ .r32, .r32, .rm32 }, &.{ 0xf2, 0x0f, 0x38, 0xf5 }, 0, .vex_lz_w0, .bmi2 }, + .{ .pdep, .rvm, &.{ .r64, .r64, .rm64 }, &.{ 0xf2, 0x0f, 0x38, 0xf5 }, 0, .vex_lz_w1, .bmi2 }, + + .{ .pext, .rvm, &.{ .r32, .r32, .rm32 }, &.{ 0xf3, 0x0f, 0x38, 0xf5 }, 0, .vex_lz_w0, .bmi2 }, + .{ .pext, .rvm, &.{ .r64, .r64, .rm64 }, &.{ 0xf3, 0x0f, 0x38, 0xf5 }, 0, .vex_lz_w1, .bmi2 }, + + .{ .rorx, .rmi, &.{ .r32, .rm32, .imm8 }, &.{ 0xf2, 0x0f, 0x3a }, 0, .vex_lz_w0, .bmi2 }, + .{ .rorx, .rmi, &.{ .r64, .rm64, .imm8 }, &.{ 0xf2, 0x0f, 0x3a }, 0, .vex_lz_w1, .bmi2 }, + + .{ .sarx, .rmv, &.{ .r32, .rm32, .r32 }, &.{ 0xf3, 0x0f, 0x38, 0xf7 }, 0, .vex_lz_w0, .bmi2 }, + .{ .shlx, .rmv, &.{ .r32, .rm32, .r32 }, &.{ 0x66, 0x0f, 0x38, 0xf7 }, 0, .vex_lz_w0, .bmi2 }, + .{ .shrx, .rmv, &.{ .r32, .rm32, .r32 }, &.{ 0xf2, 0x0f, 0x38, 0xf7 }, 0, .vex_lz_w0, .bmi2 }, + .{ .sarx, .rmv, &.{ .r64, .rm64, .r64 }, &.{ 0xf3, 0x0f, 0x38, 0xf7 }, 0, .vex_lz_w1, .bmi2 }, + .{ .shlx, .rmv, &.{ .r64, .rm64, .r64 }, &.{ 0x66, 0x0f, 0x38, 0xf7 }, 0, .vex_lz_w1, .bmi2 }, + .{ .shrx, .rmv, &.{ .r64, .rm64, .r64 }, &.{ 0xf2, 0x0f, 0x38, 0xf7 }, 0, .vex_lz_w1, .bmi2 }, + // F16C .{ .vcvtph2ps, .rm, &.{ .xmm, .xmm_m64 }, &.{ 0x66, 0x0f, 0x38, 0x13 }, 0, .vex_128_w0, .f16c }, .{ .vcvtph2ps, .rm, &.{ .ymm, .xmm_m128 }, &.{ 0x66, 0x0f, 0x38, 0x13 }, 0, .vex_256_w0, .f16c }, diff --git a/src/codegen.zig b/src/codegen.zig index 6d054f6b012a..7726af8387ac 100644 --- a/src/codegen.zig +++ b/src/codegen.zig @@ -83,8 +83,10 @@ pub fn generateLazyFunction( debug_output: link.File.DebugInfoOutput, ) CodeGenError!void { const zcu = pt.zcu; - const file = Type.fromInterned(lazy_sym.ty).typeDeclInstAllowGeneratedTag(zcu).?.resolveFile(&zcu.intern_pool); - const target = zcu.fileByIndex(file).mod.resolved_target.result; + const target = if (Type.fromInterned(lazy_sym.ty).typeDeclInstAllowGeneratedTag(zcu)) |inst_index| + zcu.fileByIndex(inst_index.resolveFile(&zcu.intern_pool)).mod.resolved_target.result + else + zcu.getTarget(); switch (target_util.zigBackend(target, false)) { else => unreachable, inline .stage2_x86_64, .stage2_riscv64 => |backend| { diff --git a/src/main.zig b/src/main.zig index ce04a9276580..773426dab94e 100644 --- a/src/main.zig +++ b/src/main.zig @@ -39,10 +39,7 @@ test { _ = Package; } -const thread_stack_size = switch (builtin.zig_backend) { - else => std.Thread.SpawnConfig.default_stack_size, - .stage2_x86_64 => 32 << 20, -}; +const thread_stack_size = 32 << 20; pub const std_options: std.Options = .{ .wasiCwd = wasi_cwd, diff --git a/src/target.zig b/src/target.zig index 2496c4b07faa..3d7abb935d7c 100644 --- a/src/target.zig +++ b/src/target.zig @@ -726,11 +726,11 @@ pub inline fn backendSupportsFeature(backend: std.builtin.CompilerBackend, compt else => false, }, .is_named_enum_value => switch (backend) { - .stage2_llvm => true, + .stage2_llvm, .stage2_x86_64 => true, else => false, }, .error_set_has_value => switch (backend) { - .stage2_llvm, .stage2_wasm => true, + .stage2_llvm, .stage2_wasm, .stage2_x86_64 => true, else => false, }, .field_reordering => switch (backend) { diff --git a/test/behavior/math.zig b/test/behavior/math.zig index a658a0559cd4..735d3cdbc144 100644 --- a/test/behavior/math.zig +++ b/test/behavior/math.zig @@ -527,7 +527,7 @@ fn testIntDivision() !void { try expect(mod(i64, -14, 12) == 10); try expect(mod(i16, -2, 12) == 10); try expect(mod(i16, -118, 12) == 2); - try expect(mod(i8, -2, 12) == 10); // TODO: fails in x86_64 + try expect(mod(i8, -2, 12) == 10); try expect(rem(i64, -118, 12) == -10); try expect(rem(i32, 10, 12) == 10); diff --git a/test/behavior/x86_64/build.zig b/test/behavior/x86_64/build.zig index d18d5eb5eee1..967d061be19f 100644 --- a/test/behavior/x86_64/build.zig +++ b/test/behavior/x86_64/build.zig @@ -93,6 +93,11 @@ pub fn build(b: *std.Build) void { .cpu_arch = .x86_64, .cpu_model = .{ .explicit = &std.Target.x86.cpu.x86_64_v3 }, }, + .{ + .cpu_arch = .x86_64, + .cpu_model = .{ .explicit = &std.Target.x86.cpu.x86_64_v3 }, + .cpu_features_add = std.Target.x86.featureSet(&.{.adx}), + }, .{ .cpu_arch = .x86_64, .cpu_model = .{ .explicit = &std.Target.x86.cpu.x86_64_v4 }, diff --git a/test/behavior/x86_64/math.zig b/test/behavior/x86_64/math.zig index ebc9ca569fbd..bd498e359676 100644 --- a/test/behavior/x86_64/math.zig +++ b/test/behavior/x86_64/math.zig @@ -33,6 +33,28 @@ fn Scalar(comptime Type: type) type { .vector => |info| info.child, }; } +fn AddOneBit(comptime Type: type) type { + const ResultScalar = switch (@typeInfo(Scalar(Type))) { + .int => |int| @Type(.{ .int = .{ .signedness = int.signedness, .bits = 1 + int.bits } }), + .float => Scalar(Type), + else => @compileError(@typeName(Type)), + }; + return switch (@typeInfo(Type)) { + else => ResultScalar, + .vector => |vector| @Vector(vector.len, ResultScalar), + }; +} +fn DoubleBits(comptime Type: type) type { + const ResultScalar = switch (@typeInfo(Scalar(Type))) { + .int => |int| @Type(.{ .int = .{ .signedness = int.signedness, .bits = int.bits * 2 } }), + .float => Scalar(Type), + else => @compileError(@typeName(Type)), + }; + return switch (@typeInfo(Type)) { + else => ResultScalar, + .vector => |vector| @Vector(vector.len, ResultScalar), + }; +} // inline to avoid a runtime `@splat` inline fn splat(comptime Type: type, scalar: Scalar(Type)) Type { return switch (@typeInfo(Type)) { @@ -16205,6 +16227,8 @@ fn binary(comptime op: anytype, comptime opts: struct { compare: Compare = .rela ); } fn testInts() !void { + try testArgs(i4, 0x3, 0x2); + try testArgs(u4, 0xe, 0x6); try testArgs(i8, 0x48, 0x6c); try testArgs(u8, 0xbb, 0x43); try testArgs(i16, -0x0fdf, 0x302e); @@ -17967,8 +17991,8 @@ fn binary(comptime op: anytype, comptime opts: struct { compare: Compare = .rela -0x12, -0x1e, 0x18, 0x6e, 0x31, 0x53, -0x6a, -0x34, 0x13, 0x4d, 0x30, -0x7d, -0x31, 0x1e, -0x24, 0x32, -0x1e, -0x01, 0x55, 0x33, -0x75, -0x44, -0x57, 0x2b, -0x66, 0x19, 0x7f, -0x28, -0x3f, -0x7e, -0x5d, -0x06, }, .{ - 0x05, -0x23, 0x43, -0x54, -0x41, 0x7f, -0x6a, -0x31, 0x04, 0x15, -0x7a, -0x37, 0x6d, 0x16, 0x00, 0x4a, - 0x15, 0x55, -0x4a, 0x16, -0x73, -0x0c, 0x1c, -0x26, -0x14, 0x00, 0x55, 0x7b, 0x16, -0x2e, -0x5f, -0x67, + 0x05, -0x23, 0x43, -0x54, -0x41, 0x7f, -0x6a, -0x31, 0x04, 0x15, -0x7a, -0x37, 0x6d, 0x16, 0x01, 0x4a, + 0x15, 0x55, -0x4a, 0x16, -0x73, -0x0c, 0x1c, -0x26, -0x14, -0x01, 0x55, 0x7b, 0x16, -0x2e, -0x5f, -0x67, }); try testArgs(@Vector(64, i8), .{ -0x05, 0x76, 0x4e, -0x5c, 0x7b, -0x1a, -0x38, -0x2e, 0x3d, 0x36, 0x01, 0x30, -0x02, -0x71, -0x24, 0x24, @@ -17997,7 +18021,7 @@ fn binary(comptime op: anytype, comptime opts: struct { compare: Compare = .rela 0x23, 0x3b, 0x0a, 0x7a, 0x19, 0x14, 0x65, -0x1d, 0x2b, 0x65, 0x33, 0x2a, 0x52, -0x63, 0x57, 0x10, -0x1b, 0x26, -0x46, -0x7e, -0x25, 0x79, -0x01, -0x0d, -0x49, -0x4d, 0x74, 0x03, 0x77, 0x16, 0x03, -0x3d, 0x1c, 0x25, 0x5a, -0x2f, -0x16, -0x5f, -0x36, -0x55, -0x44, -0x0c, -0x0f, 0x7b, -0x15, -0x1d, 0x32, 0x31, - 0x6e, -0x44, -0x4a, -0x64, 0x67, 0x04, 0x47, 0x00, 0x3c, -0x0a, -0x79, 0x3d, 0x48, 0x5a, 0x61, -0x2c, + 0x6e, -0x44, -0x4a, -0x64, 0x67, 0x04, 0x47, -0x02, 0x3c, -0x0a, -0x79, 0x3d, 0x48, 0x5a, 0x61, -0x2c, 0x6d, -0x68, -0x71, -0x6b, -0x11, 0x44, -0x75, -0x55, -0x67, -0x52, 0x64, -0x3d, -0x05, -0x76, -0x6d, -0x44, }); @@ -18024,7 +18048,7 @@ fn binary(comptime op: anytype, comptime opts: struct { compare: Compare = .rela try testArgs(@Vector(16, u8), .{ 0xea, 0x80, 0xbb, 0xe8, 0x74, 0x81, 0xc8, 0x66, 0x7b, 0x41, 0x90, 0xcb, 0x30, 0x70, 0x4b, 0x0f, }, .{ - 0x61, 0x26, 0xbe, 0x47, 0x00, 0x9c, 0x55, 0xa5, 0x59, 0xf0, 0xb2, 0x20, 0x30, 0xaf, 0x82, 0x3e, + 0x61, 0x26, 0xbe, 0x47, 0x02, 0x9c, 0x55, 0xa5, 0x59, 0xf0, 0xb2, 0x20, 0x30, 0xaf, 0x82, 0x3e, }); try testArgs(@Vector(32, u8), .{ 0xa1, 0x88, 0xc4, 0xf4, 0x77, 0x0b, 0xf5, 0xbb, 0x09, 0x03, 0xbf, 0xf5, 0xcc, 0x7f, 0x6b, 0x2a, @@ -18950,22 +18974,45 @@ fn binary(comptime op: anytype, comptime opts: struct { compare: Compare = .rela }; } -inline fn add(comptime Type: type, lhs: Type, rhs: Type) @TypeOf(lhs + rhs) { - return lhs + rhs; +inline fn addUnsafe(comptime Type: type, lhs: Type, rhs: Type) AddOneBit(Type) { + @setRuntimeSafety(false); + return @as(AddOneBit(Type), lhs) + rhs; +} +test addUnsafe { + const test_add_unsafe = binary(addUnsafe, .{}); + try test_add_unsafe.testInts(); + try test_add_unsafe.testIntVectors(); + try test_add_unsafe.testFloats(); + try test_add_unsafe.testFloatVectors(); +} + +inline fn subUnsafe(comptime Type: type, lhs: Type, rhs: Type) AddOneBit(Type) { + @setRuntimeSafety(false); + switch (@typeInfo(Scalar(Type))) { + else => @compileError(@typeName(Type)), + .int => |int| switch (int.signedness) { + .signed => {}, + .unsigned => return @as(AddOneBit(Type), @max(lhs, rhs)) - @min(lhs, rhs), + }, + .float => {}, + } + return @as(AddOneBit(Type), lhs) - rhs; } -test add { - const test_add = binary(add, .{}); - try test_add.testFloats(); - try test_add.testFloatVectors(); +test subUnsafe { + const test_sub_unsafe = binary(subUnsafe, .{}); + try test_sub_unsafe.testInts(); + try test_sub_unsafe.testIntVectors(); + try test_sub_unsafe.testFloats(); + try test_sub_unsafe.testFloatVectors(); } -inline fn subtract(comptime Type: type, lhs: Type, rhs: Type) @TypeOf(lhs - rhs) { - return lhs - rhs; +inline fn mulUnsafe(comptime Type: type, lhs: Type, rhs: Type) DoubleBits(Type) { + @setRuntimeSafety(false); + return @as(DoubleBits(Type), lhs) * rhs; } -test subtract { - const test_subtract = binary(subtract, .{}); - try test_subtract.testFloats(); - try test_subtract.testFloatVectors(); +test mulUnsafe { + const test_mul_unsafe = binary(mulUnsafe, .{}); + try test_mul_unsafe.testInts(); } inline fn multiply(comptime Type: type, lhs: Type, rhs: Type) @TypeOf(lhs * rhs) { @@ -18999,42 +19046,51 @@ test divide { try test_divide.testFloatVectors(); } -// workaround https://github.com/ziglang/zig/issues/22748 -// TODO: @TypeOf(@divTrunc(lhs, rhs)) -inline fn divTrunc(comptime Type: type, lhs: Type, rhs: Type) @TypeOf(lhs / rhs) { - if (@inComptime()) { - // workaround https://github.com/ziglang/zig/issues/22748 - return @trunc(lhs / rhs); +inline fn divTrunc(comptime Type: type, lhs: Type, rhs: Type) Type { + switch (@typeInfo(Scalar(Type))) { + else => @compileError(@typeName(Type)), + .int => return @divTrunc(lhs, rhs), + .float => { + if (@inComptime()) { + // workaround https://github.com/ziglang/zig/issues/22748 + return @trunc(lhs / rhs); + } + // workaround https://github.com/ziglang/zig/issues/22748 + // workaround https://github.com/ziglang/zig/issues/22749 + // TODO: return @divTrunc(lhs, rhs); + var rt_lhs = lhs; + var rt_rhs = rhs; + _ = .{ &rt_lhs, &rt_rhs }; + return @divTrunc(rt_lhs, rt_rhs); + }, } - // workaround https://github.com/ziglang/zig/issues/22748 - // workaround https://github.com/ziglang/zig/issues/22749 - // TODO: return @divTrunc(lhs, rhs); - var rt_lhs = lhs; - var rt_rhs = rhs; - _ = .{ &rt_lhs, &rt_rhs }; - return @divTrunc(rt_lhs, rt_rhs); } test divTrunc { const test_div_trunc = binary(divTrunc, .{ .compare = .approx_int }); + try test_div_trunc.testInts(); + try test_div_trunc.testIntVectors(); try test_div_trunc.testFloats(); try test_div_trunc.testFloatVectors(); } -// workaround https://github.com/ziglang/zig/issues/22748 -// TODO: @TypeOf(@divFloor(lhs, rhs)) -inline fn divFloor(comptime Type: type, lhs: Type, rhs: Type) @TypeOf(lhs / rhs) { - if (@inComptime()) { - // workaround https://github.com/ziglang/zig/issues/22748 - return @floor(lhs / rhs); +inline fn divFloor(comptime Type: type, lhs: Type, rhs: Type) Type { + switch (@typeInfo(Scalar(Type))) { + else => @compileError(@typeName(Type)), + .int => return @divFloor(lhs, rhs), + .float => { + if (@inComptime()) { + // workaround https://github.com/ziglang/zig/issues/22748 + return @floor(lhs / rhs); + } + // workaround https://github.com/ziglang/zig/issues/22748 + // workaround https://github.com/ziglang/zig/issues/22749 + // TODO: return @divFloor(lhs, rhs); + var rt_lhs = lhs; + var rt_rhs = rhs; + _ = .{ &rt_lhs, &rt_rhs }; + return @divFloor(rt_lhs, rt_rhs); + }, } - // workaround https://github.com/ziglang/zig/issues/22748 - // workaround https://github.com/ziglang/zig/issues/22749 - // TODO: return @divFloor(lhs, rhs); - var rt_lhs = lhs; - var rt_rhs = rhs; - _ = &rt_lhs; - _ = &rt_rhs; - return @divFloor(rt_lhs, rt_rhs); } test divFloor { const test_div_floor = binary(divFloor, .{ .compare = .approx_int }); @@ -19045,25 +19101,33 @@ test divFloor { // workaround https://github.com/ziglang/zig/issues/22748 // TODO: @TypeOf(@rem(lhs, rhs)) inline fn rem(comptime Type: type, lhs: Type, rhs: Type) Type { - if (@inComptime()) { - // workaround https://github.com/ziglang/zig/issues/22748 - switch (@typeInfo(Type)) { - else => return if (rhs != 0) @rem(lhs, rhs) else nan(Type), - .vector => |info| { - var res: Type = undefined; - inline for (0..info.len) |i| res[i] = if (rhs[i] != 0) @rem(lhs[i], rhs[i]) else nan(Scalar(Type)); - return res; - }, - } + switch (@typeInfo(Scalar(Type))) { + else => @compileError(@typeName(Type)), + .int => return @rem(lhs, rhs), + .float => { + if (@inComptime()) { + // workaround https://github.com/ziglang/zig/issues/22748 + switch (@typeInfo(Type)) { + else => return if (rhs != 0) @rem(lhs, rhs) else nan(Type), + .vector => |info| { + var res: Type = undefined; + inline for (0..info.len) |i| res[i] = if (rhs[i] != 0) @rem(lhs[i], rhs[i]) else nan(Scalar(Type)); + return res; + }, + } + } + // workaround https://github.com/ziglang/zig/issues/22748 + // TODO: return @rem(lhs, rhs); + var rt_rhs = rhs; + _ = &rt_rhs; + return @rem(lhs, rt_rhs); + }, } - // workaround https://github.com/ziglang/zig/issues/22748 - // TODO: return @rem(lhs, rhs); - var rt_rhs = rhs; - _ = &rt_rhs; - return @rem(lhs, rt_rhs); } test rem { const test_rem = binary(rem, .{}); + try test_rem.testInts(); + try test_rem.testIntVectors(); try test_rem.testFloats(); try test_rem.testFloatVectors(); } diff --git a/test/behavior/x86_64/mem.zig b/test/behavior/x86_64/mem.zig index 768273f48a25..139e3a147175 100644 --- a/test/behavior/x86_64/mem.zig +++ b/test/behavior/x86_64/mem.zig @@ -1,4 +1,4 @@ -fn access(comptime array: anytype) !void { +fn accessSlice(comptime array: anytype) !void { var slice: []const @typeInfo(@TypeOf(array)).array.child = undefined; slice = &array; inline for (0.., &array) |ct_index, *elem| { @@ -20,18 +20,153 @@ fn access(comptime array: anytype) !void { if (slice[rt_index] != elem.*) return error.Unexpected; } } -test access { - try access([3]u8{ 0xdb, 0xef, 0xbd }); - try access([3]u16{ 0x340e, 0x3654, 0x88d7 }); - try access([3]u32{ 0xd424c2c0, 0x2d6ac466, 0x5a0cfaba }); - try access([3]u64{ +test accessSlice { + try accessSlice([3]u8{ 0xdb, 0xef, 0xbd }); + try accessSlice([3]u16{ 0x340e, 0x3654, 0x88d7 }); + try accessSlice([3]u32{ 0xd424c2c0, 0x2d6ac466, 0x5a0cfaba }); + try accessSlice([3]u64{ 0x9327a4f5221666a6, 0x5c34d3ddd84a8b12, 0xbae087f39f649260, }); - try access([3]u128{ + try accessSlice([3]u128{ 0x601cf010065444d4d42d5536dd9b95db, 0xa03f592fcaa22d40af23a0c735531e3c, 0x5da44907b31602b95c2d93f0b582ceab, }); } + +fn accessVector(comptime init: anytype) !void { + const Vector = @TypeOf(init); + var vector: Vector = undefined; + vector = init; + inline for (0..@typeInfo(Vector).vector.len) |ct_index| { + var rt_index: usize = undefined; + rt_index = ct_index; + if (&vector[rt_index] != &vector[ct_index]) return error.Unexpected; + if (vector[rt_index] != vector[ct_index]) return error.Unexpected; + } +} +test accessVector { + try accessVector(@Vector(1, bool){ + false, + }); + try accessVector(@Vector(2, bool){ + false, true, + }); + try accessVector(@Vector(3, bool){ + true, true, false, + }); + try accessVector(@Vector(5, bool){ + true, false, true, false, true, + }); + try accessVector(@Vector(7, bool){ + true, false, true, true, true, false, true, + }); + try accessVector(@Vector(8, bool){ + false, true, false, true, false, false, false, true, + }); + try accessVector(@Vector(9, bool){ + true, true, false, true, false, false, false, false, + true, + }); + try accessVector(@Vector(15, bool){ + false, true, true, true, false, true, false, false, + true, true, false, false, true, false, false, + }); + try accessVector(@Vector(16, bool){ + true, true, false, true, false, false, false, false, + false, true, true, false, false, false, true, true, + }); + try accessVector(@Vector(17, bool){ + true, false, true, true, false, true, false, true, + true, true, true, false, false, false, true, true, + false, + }); + try accessVector(@Vector(31, bool){ + true, false, true, true, false, true, true, true, + false, true, false, true, false, true, true, true, + false, false, true, false, false, false, false, true, + true, true, true, false, false, false, false, + }); + try accessVector(@Vector(32, bool){ + true, true, false, false, false, true, true, true, + false, true, true, true, false, true, false, true, + false, true, false, true, false, true, true, false, + false, false, false, false, false, true, true, true, + }); + try accessVector(@Vector(33, bool){ + true, false, false, false, false, true, true, true, + false, false, true, false, true, true, false, true, + true, true, false, true, true, false, false, false, + false, true, false, false, false, true, true, false, + false, + }); + try accessVector(@Vector(63, bool){ + false, false, true, true, true, false, true, true, + true, false, true, true, true, false, true, false, + true, true, false, true, false, true, true, true, + false, false, true, false, false, false, false, true, + true, true, true, true, false, true, false, true, + true, true, false, false, true, false, false, true, + false, true, false, false, false, false, true, true, + false, true, false, false, true, true, true, + }); + try accessVector(@Vector(64, bool){ + false, false, true, true, true, false, true, true, + true, false, true, true, false, true, true, false, + false, false, false, false, true, true, false, true, + true, true, true, true, false, false, false, true, + true, false, true, true, false, false, true, false, + false, true, true, false, true, true, false, false, + true, true, false, true, false, true, true, true, + false, true, true, false, false, false, false, false, + }); + try accessVector(@Vector(65, bool){ + false, false, true, true, true, true, true, true, + true, false, false, false, false, true, true, false, + true, false, true, true, true, false, false, false, + true, false, true, true, false, true, true, true, + true, true, false, true, true, false, true, false, + false, true, false, true, false, false, true, false, + true, false, true, true, true, false, true, true, + false, false, true, true, true, true, false, false, + true, + }); + try accessVector(@Vector(8, u8){ + 0x60, 0xf7, 0xf4, 0xb0, 0x05, 0xd3, 0x06, 0x78, + }); + try accessVector(@Vector(8, u16){ + 0x9c91, 0xfb8b, 0x7f80, 0x8304, 0x6e52, 0xd8ef, 0x37fc, 0x7851, + }); + try accessVector(@Vector(8, u32){ + 0x688b88e2, 0x68e2b7a2, 0x87574680, 0xab4f0769, + 0x75472bb5, 0xa791f2ae, 0xeb2ed416, 0x5f05ce82, + }); + try accessVector(@Vector(8, u64){ + 0xdefd1ddffaedf818, 0x91c78a29d3d59890, + 0x842aaf8fd3c7b785, 0x970a07b8f9f4a6b3, + 0x21b2425d1a428246, 0xea50e41174a7977b, + 0x08d0f1c4f5978b74, 0x8dc88a7fd85e0e67, + }); + try accessVector(@Vector(8, u128){ + 0x6f2cbde1fb219b1e73d7f774d10f0d94, + 0x7c1412616cda20436d7106691d8ba4cc, + 0x4ee940b50e97675b3b35d7872a35b5ad, + 0x6d994fb8caa1b2fac48acbb68fa2d2f1, + 0xdee698c7ec8de9b5940903e3fc665b63, + 0x0751491a509e4a1ce8cfa6d62fe9e74c, + 0x3d880f0a927ce3bfc2682b72070fcd50, + 0x82f0eec62881598699eeb93fbb456e95, + }); + try accessVector(@Vector(8, u256){ + 0x6ee4f35fe624d365952f73960791238ac781bfba782abc7866a691063e43ce48, + 0xb006491f54a9c9292458a5835b7d5f4cfa18136f175eef0a13bb8adf5c3dc061, + 0xd6e25ca1bc5685fc52609e261b9065bc05a8662e9291660033dd7f6d98e562b3, + 0x992c5e54e0e6331dac258996be7dae9b2a2eff323a39043ba8d2721420dc5f5c, + 0x257313f45fb3556d0fc323d5f38c953e9a093fe2278655312b6a5b64aab9d901, + 0x6c8ad2182b9a3b2b19c2c9b152956b383d0fee2e3fbd5b02ed72227446a7b221, + 0xd80cafc2252b289793799675e43f97ba4a5448c7b57e1544a464687b435efc7b, + 0xfcb480f2d70afd53c4689dd3f5db7638c24302f2a6a15f738167db090d91fb28, + }); +} diff --git a/test/cases/array_in_anon_struct.zig b/test/cases/array_in_anon_struct.zig index 6164e7056918..5961b3f72326 100644 --- a/test/cases/array_in_anon_struct.zig +++ b/test/cases/array_in_anon_struct.zig @@ -18,5 +18,5 @@ pub fn main() !void { } // run -// backend=llvm +// backend=stage2,llvm // target=native diff --git a/test/cases/compile_errors/addition_with_non_numbers.zig b/test/cases/compile_errors/addition_with_non_numbers.zig index d1401d95ebe7..9b2745dc4ae4 100644 --- a/test/cases/compile_errors/addition_with_non_numbers.zig +++ b/test/cases/compile_errors/addition_with_non_numbers.zig @@ -8,7 +8,7 @@ export fn entry() usize { } // error -// backend=llvm +// backend=stage2 // target=native // // :4:29: error: invalid operands to binary expression: 'struct' and 'struct' diff --git a/test/cases/compile_errors/asm_at_compile_time.zig b/test/cases/compile_errors/asm_at_compile_time.zig index 1d588a7df4f1..9c34b5829881 100644 --- a/test/cases/compile_errors/asm_at_compile_time.zig +++ b/test/cases/compile_errors/asm_at_compile_time.zig @@ -11,7 +11,7 @@ fn doSomeAsm() void { } // error -// backend=llvm +// backend=stage2 // target=native // // :6:5: error: unable to evaluate comptime expression diff --git a/test/cases/compile_errors/asm_output_to_const.zig b/test/cases/compile_errors/asm_output_to_const.zig index aa20a489aaec..ec0dcc2ece6f 100644 --- a/test/cases/compile_errors/asm_output_to_const.zig +++ b/test/cases/compile_errors/asm_output_to_const.zig @@ -8,7 +8,7 @@ export fn foo() void { } // error -// backend=llvm +// backend=stage2 // target=native // // :4:5: error: asm cannot output to const local 'f' diff --git a/test/cases/compile_errors/call_from_naked_func.zig b/test/cases/compile_errors/call_from_naked_func.zig index 7803974d0133..a4a92388dc65 100644 --- a/test/cases/compile_errors/call_from_naked_func.zig +++ b/test/cases/compile_errors/call_from_naked_func.zig @@ -17,7 +17,7 @@ export fn comptimeBuiltinCall() callconv(.Naked) void { fn f() void {} // error -// backend=llvm +// backend=stage2 // target=native // // :2:6: error: runtime call not allowed in naked function diff --git a/test/cases/compile_errors/calling_function_with_naked_calling_convention.zig b/test/cases/compile_errors/calling_function_with_naked_calling_convention.zig index ea4e42f15d5a..ca499835582d 100644 --- a/test/cases/compile_errors/calling_function_with_naked_calling_convention.zig +++ b/test/cases/compile_errors/calling_function_with_naked_calling_convention.zig @@ -4,7 +4,7 @@ export fn entry() void { fn foo() callconv(.naked) void {} // error -// backend=llvm +// backend=stage2 // target=native // // :2:5: error: unable to call function with calling convention 'naked' diff --git a/test/cases/compile_errors/cast_negative_value_to_unsigned_integer.zig b/test/cases/compile_errors/cast_negative_value_to_unsigned_integer.zig index 57206b267fc1..427832caab3b 100644 --- a/test/cases/compile_errors/cast_negative_value_to_unsigned_integer.zig +++ b/test/cases/compile_errors/cast_negative_value_to_unsigned_integer.zig @@ -10,7 +10,7 @@ export fn entry1() void { } // error -// backend=llvm +// backend=stage2 // target=native // // :3:36: error: type 'u32' cannot represent integer value '-1' diff --git a/test/cases/compile_errors/compare_optional_to_non_optional_with_incomparable_type.zig b/test/cases/compile_errors/compare_optional_to_non_optional_with_incomparable_type.zig index e9746f7e1668..9416cf8309cc 100644 --- a/test/cases/compile_errors/compare_optional_to_non_optional_with_incomparable_type.zig +++ b/test/cases/compile_errors/compare_optional_to_non_optional_with_incomparable_type.zig @@ -5,7 +5,7 @@ export fn entry() void { } // error -// backend=llvm +// backend=stage2 // target=native // // :4:12: error: operator == not allowed for type '?[3]i32' diff --git a/test/cases/compile_errors/compile_log.zig b/test/cases/compile_errors/compile_log.zig index bbc4b826577d..3a27d5b013f2 100644 --- a/test/cases/compile_errors/compile_log.zig +++ b/test/cases/compile_errors/compile_log.zig @@ -13,7 +13,7 @@ export fn baz() void { } // error -// backend=llvm +// backend=stage2 // target=native // // :6:5: error: found compile log statement diff --git a/test/cases/compile_errors/compile_log_statement_warning_deduplication_in_generic_fn.zig b/test/cases/compile_errors/compile_log_statement_warning_deduplication_in_generic_fn.zig index 2e2addbc2e1a..c2fb78f62c72 100644 --- a/test/cases/compile_errors/compile_log_statement_warning_deduplication_in_generic_fn.zig +++ b/test/cases/compile_errors/compile_log_statement_warning_deduplication_in_generic_fn.zig @@ -10,7 +10,7 @@ fn inner(comptime n: usize) void { } // error -// backend=llvm +// backend=stage2 // target=native // // :8:9: error: found compile log statement diff --git a/test/cases/compile_errors/compile_time_division_by_zero.zig b/test/cases/compile_errors/compile_time_division_by_zero.zig index 8954ace9ab1e..aad953ab7341 100644 --- a/test/cases/compile_errors/compile_time_division_by_zero.zig +++ b/test/cases/compile_errors/compile_time_division_by_zero.zig @@ -8,7 +8,7 @@ export fn entry() usize { } // error -// backend=llvm +// backend=stage2 // target=native // // :3:16: error: division by zero here causes undefined behavior diff --git a/test/cases/compile_errors/compile_time_null_ptr_cast.zig b/test/cases/compile_errors/compile_time_null_ptr_cast.zig index 2142521fd172..88441b294e62 100644 --- a/test/cases/compile_errors/compile_time_null_ptr_cast.zig +++ b/test/cases/compile_errors/compile_time_null_ptr_cast.zig @@ -5,7 +5,7 @@ comptime { } // error -// backend=llvm +// backend=stage2 // target=native // // :3:32: error: null pointer casted to type '*i32' diff --git a/test/cases/compile_errors/compile_time_undef_ptr_cast.zig b/test/cases/compile_errors/compile_time_undef_ptr_cast.zig index 9e6bfd800341..97c0554881f8 100644 --- a/test/cases/compile_errors/compile_time_undef_ptr_cast.zig +++ b/test/cases/compile_errors/compile_time_undef_ptr_cast.zig @@ -6,7 +6,7 @@ comptime { } // error -// backend=llvm +// backend=stage2 // target=native // // :3:32: error: use of undefined value here causes undefined behavior diff --git a/test/cases/compile_errors/discarded_array_bad_elem_type.zig b/test/cases/compile_errors/discarded_array_bad_elem_type.zig index edc64e40b05b..5893a2aa4be9 100644 --- a/test/cases/compile_errors/discarded_array_bad_elem_type.zig +++ b/test/cases/compile_errors/discarded_array_bad_elem_type.zig @@ -6,7 +6,7 @@ export fn foo() void { } // error -// backend=llvm +// backend=stage2 // target=native // // :3:9: error: expected type 'u16', found '*const [5:0]u8' diff --git a/test/cases/compile_errors/duplicate_error_in_switch.zig b/test/cases/compile_errors/duplicate_error_in_switch.zig index aaaed396fa80..7d5ce388b942 100644 --- a/test/cases/compile_errors/duplicate_error_in_switch.zig +++ b/test/cases/compile_errors/duplicate_error_in_switch.zig @@ -15,7 +15,7 @@ fn foo(x: i32) !void { } // error -// backend=llvm +// backend=stage2 // target=native // // :5:9: error: duplicate switch value diff --git a/test/cases/compile_errors/error_in_comptime_call_in_container_level_initializer.zig b/test/cases/compile_errors/error_in_comptime_call_in_container_level_initializer.zig index 9918b771b31a..9b8b35ad605a 100644 --- a/test/cases/compile_errors/error_in_comptime_call_in_container_level_initializer.zig +++ b/test/cases/compile_errors/error_in_comptime_call_in_container_level_initializer.zig @@ -15,7 +15,7 @@ pub export fn entry() void { } // error -// backend=llvm +// backend=stage2 // target=native // // :9:48: error: caught unexpected error 'InvalidVersion' diff --git a/test/cases/compile_errors/error_not_handled_in_switch.zig b/test/cases/compile_errors/error_not_handled_in_switch.zig index 04f122b11d24..e3444522962b 100644 --- a/test/cases/compile_errors/error_not_handled_in_switch.zig +++ b/test/cases/compile_errors/error_not_handled_in_switch.zig @@ -13,7 +13,7 @@ fn foo(x: i32) !void { } // error -// backend=llvm +// backend=stage2 // target=native // // :2:26: error: switch must handle all possibilities diff --git a/test/cases/compile_errors/error_set_membership.zig b/test/cases/compile_errors/error_set_membership.zig index f8fa18f7f81b..67826f4db975 100644 --- a/test/cases/compile_errors/error_set_membership.zig +++ b/test/cases/compile_errors/error_set_membership.zig @@ -24,7 +24,7 @@ pub fn main() Error!void { } // error -// backend=llvm +// backend=stage2 // target=native // // :23:29: error: expected type 'error{InvalidCharacter}', found '@typeInfo(@typeInfo(@TypeOf(tmp.fooey)).@"fn".return_type.?).error_union.error_set' diff --git a/test/cases/compile_errors/exact division failure.zig b/test/cases/compile_errors/exact division failure.zig index d134e0e2fbab..fee8219a7b05 100644 --- a/test/cases/compile_errors/exact division failure.zig +++ b/test/cases/compile_errors/exact division failure.zig @@ -4,7 +4,7 @@ comptime { } // error -// backend=llvm +// backend=stage2 // target=native // // :2:15: error: exact division produced remainder diff --git a/test/cases/compile_errors/exceeded_maximum_bit_width_of_integer.zig b/test/cases/compile_errors/exceeded_maximum_bit_width_of_integer.zig index b002fca9c9e5..b7d5c95c2575 100644 --- a/test/cases/compile_errors/exceeded_maximum_bit_width_of_integer.zig +++ b/test/cases/compile_errors/exceeded_maximum_bit_width_of_integer.zig @@ -8,7 +8,7 @@ export fn entry2() void { } // error -// backend=llvm +// backend=stage2 // target=native // // :2:15: error: primitive integer type 'u65536' exceeds maximum bit width of 65535 diff --git a/test/cases/compile_errors/export_with_empty_name_string.zig b/test/cases/compile_errors/export_with_empty_name_string.zig index a2ab0176ac06..ce6ba0f4125b 100644 --- a/test/cases/compile_errors/export_with_empty_name_string.zig +++ b/test/cases/compile_errors/export_with_empty_name_string.zig @@ -4,7 +4,7 @@ comptime { } // error -// backend=llvm +// backend=stage2 // target=native // // :3:25: error: exported symbol name cannot be empty diff --git a/test/cases/compile_errors/fieldParentPtr-non_pointer.zig b/test/cases/compile_errors/fieldParentPtr-non_pointer.zig index 31f15783d8ea..c98a3174005e 100644 --- a/test/cases/compile_errors/fieldParentPtr-non_pointer.zig +++ b/test/cases/compile_errors/fieldParentPtr-non_pointer.zig @@ -4,7 +4,7 @@ export fn foo(a: *i32) Foo { } // error -// backend=llvm +// backend=stage2 // target=native // // :3:12: error: expected pointer type, found 'i32' diff --git a/test/cases/compile_errors/float exact division failure.zig b/test/cases/compile_errors/float exact division failure.zig index c09defc56ebf..d96c96f78cc7 100644 --- a/test/cases/compile_errors/float exact division failure.zig +++ b/test/cases/compile_errors/float exact division failure.zig @@ -4,7 +4,7 @@ comptime { } // error -// backend=llvm +// backend=stage2 // target=native // // :2:15: error: exact division produced remainder diff --git a/test/cases/compile_errors/function_call_assigned_to_incorrect_type.zig b/test/cases/compile_errors/function_call_assigned_to_incorrect_type.zig index e2bfd4fd6d1a..5b49dc16b7c3 100644 --- a/test/cases/compile_errors/function_call_assigned_to_incorrect_type.zig +++ b/test/cases/compile_errors/function_call_assigned_to_incorrect_type.zig @@ -7,7 +7,7 @@ fn concat() [16]f32 { } // error -// backend=llvm +// backend=stage2 // target=native // // :3:17: error: expected type '[4]f32', found '[16]f32' diff --git a/test/cases/compile_errors/function_prototype_with_no_body.zig b/test/cases/compile_errors/function_prototype_with_no_body.zig index 45bafa75f2a9..12eeda58ca82 100644 --- a/test/cases/compile_errors/function_prototype_with_no_body.zig +++ b/test/cases/compile_errors/function_prototype_with_no_body.zig @@ -4,7 +4,7 @@ export fn entry() void { } // error -// backend=llvm +// backend=stage2 // target=native // // :1:1: error: non-extern function has no body diff --git a/test/cases/compile_errors/generic_instantiation_failure.zig b/test/cases/compile_errors/generic_instantiation_failure.zig index d820f8f410b4..9b82fa8b4f21 100644 --- a/test/cases/compile_errors/generic_instantiation_failure.zig +++ b/test/cases/compile_errors/generic_instantiation_failure.zig @@ -19,7 +19,7 @@ pub export fn entry() void { } // error -// backend=llvm +// backend=stage2 // target=native // // :18:43: error: value of type 'type' ignored diff --git a/test/cases/compile_errors/generic_instantiation_failure_in_generic_function_return_type.zig b/test/cases/compile_errors/generic_instantiation_failure_in_generic_function_return_type.zig index ee1dd783433e..4316b6fc7922 100644 --- a/test/cases/compile_errors/generic_instantiation_failure_in_generic_function_return_type.zig +++ b/test/cases/compile_errors/generic_instantiation_failure_in_generic_function_return_type.zig @@ -36,7 +36,7 @@ pub fn is(comptime id: std.builtin.TypeId) TraitFn { } // error -// backend=llvm +// backend=stage2 // target=native // // :8:48: error: expected type 'type', found 'bool' diff --git a/test/cases/compile_errors/implicit_cast_from_array_to_mutable_slice.zig b/test/cases/compile_errors/implicit_cast_from_array_to_mutable_slice.zig index 1efc37542554..1a77f8f129f0 100644 --- a/test/cases/compile_errors/implicit_cast_from_array_to_mutable_slice.zig +++ b/test/cases/compile_errors/implicit_cast_from_array_to_mutable_slice.zig @@ -7,7 +7,7 @@ export fn entry() void { } // error -// backend=llvm +// backend=stage2 // target=native // // :6:9: error: array literal requires address-of operator (&) to coerce to slice type '[]i32' diff --git a/test/cases/compile_errors/implicit_cast_from_f64_to_f32.zig b/test/cases/compile_errors/implicit_cast_from_f64_to_f32.zig index a8d4675ac897..6e2085302c23 100644 --- a/test/cases/compile_errors/implicit_cast_from_f64_to_f32.zig +++ b/test/cases/compile_errors/implicit_cast_from_f64_to_f32.zig @@ -11,7 +11,7 @@ export fn entry2() void { } // error -// backend=llvm +// backend=stage2 // target=native // // :2:14: error: expected type 'f32', found 'f64' diff --git a/test/cases/compile_errors/int_to_err_non_global_invalid_number.zig b/test/cases/compile_errors/int_to_err_non_global_invalid_number.zig index 829192ab8daf..1e7568119f7f 100644 --- a/test/cases/compile_errors/int_to_err_non_global_invalid_number.zig +++ b/test/cases/compile_errors/int_to_err_non_global_invalid_number.zig @@ -13,7 +13,7 @@ comptime { } // error -// backend=llvm +// backend=stage2 // target=native // // :11:21: error: 'error.B' not a member of error set 'error{A,C}' diff --git a/test/cases/compile_errors/invalid_peer_type_resolution.zig b/test/cases/compile_errors/invalid_peer_type_resolution.zig index c8cef83cac83..51b1b48807f8 100644 --- a/test/cases/compile_errors/invalid_peer_type_resolution.zig +++ b/test/cases/compile_errors/invalid_peer_type_resolution.zig @@ -24,7 +24,7 @@ export fn incompatiblePointers4() void { } // error -// backend=llvm +// backend=stage2 // target=native // // :5:9: error: incompatible types: '?@Vector(10, i32)' and '@Vector(11, i32)' diff --git a/test/cases/compile_errors/invalid_underscore_placement_in_int_literal-1.zig b/test/cases/compile_errors/invalid_underscore_placement_in_int_literal-1.zig index d01e8901f803..2eada20a1b96 100644 --- a/test/cases/compile_errors/invalid_underscore_placement_in_int_literal-1.zig +++ b/test/cases/compile_errors/invalid_underscore_placement_in_int_literal-1.zig @@ -4,7 +4,7 @@ fn main() void { } // error -// backend=llvm +// backend=stage2 // target=native // // :2:23: error: trailing digit separator diff --git a/test/cases/compile_errors/leading_zero_in_integer.zig b/test/cases/compile_errors/leading_zero_in_integer.zig index 2edc8fac3cac..1662e364b3ae 100644 --- a/test/cases/compile_errors/leading_zero_in_integer.zig +++ b/test/cases/compile_errors/leading_zero_in_integer.zig @@ -16,7 +16,7 @@ export fn entry4() void { } // error -// backend=llvm +// backend=stage2 // target=native // // :2:15: error: primitive integer type 'u000123' has leading zero diff --git a/test/cases/compile_errors/load_vector_pointer_with_unknown_runtime_index.zig b/test/cases/compile_errors/load_vector_pointer_with_unknown_runtime_index.zig index 7cef1c751604..0adf05e9eed7 100644 --- a/test/cases/compile_errors/load_vector_pointer_with_unknown_runtime_index.zig +++ b/test/cases/compile_errors/load_vector_pointer_with_unknown_runtime_index.zig @@ -11,7 +11,7 @@ fn loadv(ptr: anytype) i31 { } // error -// backend=llvm +// backend=stage2 // target=native // // :10:15: error: unable to determine vector element index of type '*align(16:0:4:?) i31' diff --git a/test/cases/compile_errors/method_call_with_first_arg_type_wrong_container.zig b/test/cases/compile_errors/method_call_with_first_arg_type_wrong_container.zig index 0653bda3eaec..dada6eef05cf 100644 --- a/test/cases/compile_errors/method_call_with_first_arg_type_wrong_container.zig +++ b/test/cases/compile_errors/method_call_with_first_arg_type_wrong_container.zig @@ -24,7 +24,7 @@ export fn foo() void { } // error -// backend=llvm +// backend=stage2 // target=native // // :23:6: error: no field or member function named 'init' in 'tmp.List' diff --git a/test/cases/compile_errors/missing_const_in_slice_with_nested_array_type.zig b/test/cases/compile_errors/missing_const_in_slice_with_nested_array_type.zig index 8285d344e211..44ac58f3d407 100644 --- a/test/cases/compile_errors/missing_const_in_slice_with_nested_array_type.zig +++ b/test/cases/compile_errors/missing_const_in_slice_with_nested_array_type.zig @@ -12,7 +12,7 @@ export fn entry() void { } // error -// backend=llvm +// backend=stage2 // target=native // // :4:26: error: array literal requires address-of operator (&) to coerce to slice type '[][2]f32' diff --git a/test/cases/compile_errors/missing_main_fn_in_executable.zig b/test/cases/compile_errors/missing_main_fn_in_executable.zig index 6eae09384608..75d5ef352fb3 100644 --- a/test/cases/compile_errors/missing_main_fn_in_executable.zig +++ b/test/cases/compile_errors/missing_main_fn_in_executable.zig @@ -1,5 +1,5 @@ // error -// backend=llvm +// backend=stage2 // target=x86_64-linux // output_mode=Exe // diff --git a/test/cases/compile_errors/nested_error_set_mismatch.zig b/test/cases/compile_errors/nested_error_set_mismatch.zig index 3addd5ee4340..458f9f64392f 100644 --- a/test/cases/compile_errors/nested_error_set_mismatch.zig +++ b/test/cases/compile_errors/nested_error_set_mismatch.zig @@ -11,7 +11,7 @@ fn foo() ?OtherError!i32 { } // error -// backend=llvm +// backend=stage2 // target=native // // :5:34: error: expected type '?error{NextError}!i32', found '?error{OutOfMemory}!i32' diff --git a/test/cases/compile_errors/nested_generic_function_param_type_mismatch.zig b/test/cases/compile_errors/nested_generic_function_param_type_mismatch.zig index 93718771b4d0..f2825e92c7a5 100644 --- a/test/cases/compile_errors/nested_generic_function_param_type_mismatch.zig +++ b/test/cases/compile_errors/nested_generic_function_param_type_mismatch.zig @@ -16,7 +16,7 @@ pub export fn entry() void { } // error -// backend=llvm +// backend=stage2 // target=native // // :15:28: error: expected type '*const fn (type, u8, u8) u32', found '*const fn (void, u8, u8) u32' diff --git a/test/cases/compile_errors/packed_struct_backing_int_wrong.zig b/test/cases/compile_errors/packed_struct_backing_int_wrong.zig index cd1b4ec11cb7..71f77209ad9a 100644 --- a/test/cases/compile_errors/packed_struct_backing_int_wrong.zig +++ b/test/cases/compile_errors/packed_struct_backing_int_wrong.zig @@ -43,7 +43,7 @@ export fn entry7() void { } // error -// backend=llvm +// backend=stage2 // target=native // // :2:31: error: backing integer type 'u32' has bit size 32 but the struct fields have a total bit size of 29 diff --git a/test/cases/compile_errors/packed_struct_with_fields_of_not_allowed_types.zig b/test/cases/compile_errors/packed_struct_with_fields_of_not_allowed_types.zig index fe86990d31ea..be54bc5c7e66 100644 --- a/test/cases/compile_errors/packed_struct_with_fields_of_not_allowed_types.zig +++ b/test/cases/compile_errors/packed_struct_with_fields_of_not_allowed_types.zig @@ -78,7 +78,7 @@ export fn entry14() void { } // error -// backend=llvm +// backend=stage2 // target=native // // :3:12: error: packed structs cannot contain fields of type 'anyerror' diff --git a/test/cases/compile_errors/private_main_fn.zig b/test/cases/compile_errors/private_main_fn.zig index a867e14ef9e3..d02f41ae9ebf 100644 --- a/test/cases/compile_errors/private_main_fn.zig +++ b/test/cases/compile_errors/private_main_fn.zig @@ -1,7 +1,7 @@ fn main() void {} // error -// backend=llvm +// backend=stage2 // target=x86_64-linux // output_mode=Exe // diff --git a/test/cases/compile_errors/ptrcast_to_non-pointer.zig b/test/cases/compile_errors/ptrcast_to_non-pointer.zig index ec93dc12c2b5..0a1a4b082e39 100644 --- a/test/cases/compile_errors/ptrcast_to_non-pointer.zig +++ b/test/cases/compile_errors/ptrcast_to_non-pointer.zig @@ -3,7 +3,7 @@ export fn entry(a: *i32) usize { } // error -// backend=llvm +// backend=stage2 // target=native // // :2:12: error: expected pointer type, found 'usize' diff --git a/test/cases/compile_errors/range_operator_in_switch_used_on_error_set.zig b/test/cases/compile_errors/range_operator_in_switch_used_on_error_set.zig index 89aa98ebadf7..65f67c748887 100644 --- a/test/cases/compile_errors/range_operator_in_switch_used_on_error_set.zig +++ b/test/cases/compile_errors/range_operator_in_switch_used_on_error_set.zig @@ -13,7 +13,7 @@ fn foo(x: i32) !void { } // error -// backend=llvm +// backend=stage2 // target=native // // :2:34: error: ranges not allowed when switching on type '@typeInfo(@typeInfo(@TypeOf(tmp.foo)).@"fn".return_type.?).error_union.error_set' diff --git a/test/cases/compile_errors/reassign_to_array_parameter.zig b/test/cases/compile_errors/reassign_to_array_parameter.zig index ec7db76cbd8f..331cbadc302b 100644 --- a/test/cases/compile_errors/reassign_to_array_parameter.zig +++ b/test/cases/compile_errors/reassign_to_array_parameter.zig @@ -6,7 +6,7 @@ export fn entry() void { } // error -// backend=llvm +// backend=stage2 // target=native // // :2:5: error: cannot assign to constant diff --git a/test/cases/compile_errors/reassign_to_slice_parameter.zig b/test/cases/compile_errors/reassign_to_slice_parameter.zig index 4f3fbe2a2475..ed28c9565b05 100644 --- a/test/cases/compile_errors/reassign_to_slice_parameter.zig +++ b/test/cases/compile_errors/reassign_to_slice_parameter.zig @@ -6,7 +6,7 @@ export fn entry() void { } // error -// backend=llvm +// backend=stage2 // target=native // // :2:5: error: cannot assign to constant diff --git a/test/cases/compile_errors/return_from_naked_function.zig b/test/cases/compile_errors/return_from_naked_function.zig index 083b4cb70b0c..8ac5521646d0 100644 --- a/test/cases/compile_errors/return_from_naked_function.zig +++ b/test/cases/compile_errors/return_from_naked_function.zig @@ -7,7 +7,7 @@ comptime { } // error -// backend=llvm +// backend=stage2 // target=native // // :2:5: error: cannot return from naked function diff --git a/test/cases/compile_errors/shlExact_shifts_out_1_bits.zig b/test/cases/compile_errors/shlExact_shifts_out_1_bits.zig index b2ab45a8e923..b50cd5b6a155 100644 --- a/test/cases/compile_errors/shlExact_shifts_out_1_bits.zig +++ b/test/cases/compile_errors/shlExact_shifts_out_1_bits.zig @@ -4,7 +4,7 @@ comptime { } // error -// backend=llvm +// backend=stage2 // target=native // // :2:15: error: operation caused overflow diff --git a/test/cases/compile_errors/shrExact_shifts_out_1_bits.zig b/test/cases/compile_errors/shrExact_shifts_out_1_bits.zig index dd23c4bcb3f6..ac514a467b5c 100644 --- a/test/cases/compile_errors/shrExact_shifts_out_1_bits.zig +++ b/test/cases/compile_errors/shrExact_shifts_out_1_bits.zig @@ -4,7 +4,7 @@ comptime { } // error -// backend=llvm +// backend=stage2 // target=native // // :2:15: error: exact shift shifted out 1 bits diff --git a/test/cases/compile_errors/std.fmt_error_for_unused_arguments.zig b/test/cases/compile_errors/std.fmt_error_for_unused_arguments.zig index 6661fe54eba8..af7aeb86de87 100644 --- a/test/cases/compile_errors/std.fmt_error_for_unused_arguments.zig +++ b/test/cases/compile_errors/std.fmt_error_for_unused_arguments.zig @@ -3,7 +3,7 @@ export fn entry() void { } // error -// backend=llvm +// backend=stage2 // target=native // // :?:?: error: 10 unused arguments in '{d} {d} {d} {d} {d}' diff --git a/test/cases/compile_errors/store_vector_pointer_with_unknown_runtime_index.zig b/test/cases/compile_errors/store_vector_pointer_with_unknown_runtime_index.zig index 0a00ebcf1484..b904248b5039 100644 --- a/test/cases/compile_errors/store_vector_pointer_with_unknown_runtime_index.zig +++ b/test/cases/compile_errors/store_vector_pointer_with_unknown_runtime_index.zig @@ -11,7 +11,7 @@ fn storev(ptr: anytype, val: i31) void { } // error -// backend=llvm +// backend=stage2 // target=native // // :10:8: error: unable to determine vector element index of type '*align(16:0:4:?) i31' diff --git a/test/cases/compile_errors/suspend_inside_suspend_block.zig b/test/cases/compile_errors/suspend_inside_suspend_block.zig index 29a7968e0baa..5963f1c0ec95 100644 --- a/test/cases/compile_errors/suspend_inside_suspend_block.zig +++ b/test/cases/compile_errors/suspend_inside_suspend_block.zig @@ -8,7 +8,7 @@ fn foo() void { } // error -// backend=llvm +// backend=stage2 // target=native // // :6:9: error: cannot suspend inside suspend block diff --git a/test/cases/compile_errors/switch_expression-unreachable_else_prong_enum.zig b/test/cases/compile_errors/switch_expression-unreachable_else_prong_enum.zig index e7bb8d392f0d..c361b9cc621b 100644 --- a/test/cases/compile_errors/switch_expression-unreachable_else_prong_enum.zig +++ b/test/cases/compile_errors/switch_expression-unreachable_else_prong_enum.zig @@ -20,7 +20,7 @@ export fn entry() usize { } // error -// backend=llvm +// backend=stage2 // target=native // // :14:14: error: unreachable else prong; all cases already handled diff --git a/test/cases/compile_errors/unable_to_evaluate_expr_inside_cimport.zig b/test/cases/compile_errors/unable_to_evaluate_expr_inside_cimport.zig index ab98dcd673e2..5f803f14027d 100644 --- a/test/cases/compile_errors/unable_to_evaluate_expr_inside_cimport.zig +++ b/test/cases/compile_errors/unable_to_evaluate_expr_inside_cimport.zig @@ -7,7 +7,7 @@ export fn entry() void { } // error -// backend=llvm +// backend=stage2 // target=native // // :2:11: error: unable to evaluate comptime expression diff --git a/test/cases/compile_errors/unreachable_else_prong_err_set.zig b/test/cases/compile_errors/unreachable_else_prong_err_set.zig index 29ff47a5bf39..5635e848f034 100644 --- a/test/cases/compile_errors/unreachable_else_prong_err_set.zig +++ b/test/cases/compile_errors/unreachable_else_prong_err_set.zig @@ -21,7 +21,7 @@ pub export fn simple() void { } // error -// backend=llvm +// backend=stage2 // target=native // // :7:14: error: unreachable else prong; all cases already handled diff --git a/test/cases/compile_errors/unreachable_in_naked_func.zig b/test/cases/compile_errors/unreachable_in_naked_func.zig index 9a3658013a38..d732c5939503 100644 --- a/test/cases/compile_errors/unreachable_in_naked_func.zig +++ b/test/cases/compile_errors/unreachable_in_naked_func.zig @@ -19,7 +19,7 @@ comptime { } // error -// backend=llvm +// backend=stage2 // target=native // // :2:5: error: runtime safety check not allowed in naked function diff --git a/test/cases/error_in_nested_declaration.zig b/test/cases/error_in_nested_declaration.zig index 2ef8bf13ec17..0d7ed92c18b3 100644 --- a/test/cases/error_in_nested_declaration.zig +++ b/test/cases/error_in_nested_declaration.zig @@ -23,7 +23,7 @@ pub export fn entry2() void { } // error -// backend=llvm +// backend=stage2,llvm // target=native // // :6:20: error: cannot @bitCast to '[]i32' diff --git a/test/cases/f32_passed_to_variadic_fn.zig b/test/cases/f32_passed_to_variadic_fn.zig index 3b3e034ab26c..81a583fb6b62 100644 --- a/test/cases/f32_passed_to_variadic_fn.zig +++ b/test/cases/f32_passed_to_variadic_fn.zig @@ -7,7 +7,7 @@ pub fn main() void { } // run -// backend=llvm +// backend=stage2,llvm // target=x86_64-linux-gnu // link_libc=true // diff --git a/test/cases/fn_typeinfo_passed_to_comptime_fn.zig b/test/cases/fn_typeinfo_passed_to_comptime_fn.zig index 3518a8384c4c..829a6f69a0d2 100644 --- a/test/cases/fn_typeinfo_passed_to_comptime_fn.zig +++ b/test/cases/fn_typeinfo_passed_to_comptime_fn.zig @@ -14,5 +14,5 @@ fn foo(comptime info: std.builtin.Type) !void { // run // is_test=true -// backend=llvm +// backend=stage2,llvm // diff --git a/test/cases/large_add_function.zig b/test/cases/large_add_function.zig index 61201d154588..adbb0efdc0d0 100644 --- a/test/cases/large_add_function.zig +++ b/test/cases/large_add_function.zig @@ -36,5 +36,5 @@ fn assert(ok: bool) void { // TODO: enable this for native backend // run -// backend=llvm +// backend=stage2,llvm // target=aarch64-linux,aarch64-macos diff --git a/test/cases/llvm/address_space_pointer_access_chaining_pointer_to_optional_array.zig b/test/cases/llvm/address_space_pointer_access_chaining_pointer_to_optional_array.zig index 9ee3fa4de404..51eab82f133d 100644 --- a/test/cases/llvm/address_space_pointer_access_chaining_pointer_to_optional_array.zig +++ b/test/cases/llvm/address_space_pointer_access_chaining_pointer_to_optional_array.zig @@ -7,6 +7,6 @@ pub fn main() void { // compile // output_mode=Exe -// backend=llvm +// backend=stage2,llvm // target=x86_64-linux,x86_64-macos // diff --git a/test/cases/llvm/address_spaces_pointer_access_chaining_complex.zig b/test/cases/llvm/address_spaces_pointer_access_chaining_complex.zig index 5be74a0ea59a..dfa14843750f 100644 --- a/test/cases/llvm/address_spaces_pointer_access_chaining_complex.zig +++ b/test/cases/llvm/address_spaces_pointer_access_chaining_complex.zig @@ -8,6 +8,6 @@ pub fn main() void { // compile // output_mode=Exe -// backend=llvm +// backend=stage2,llvm // target=x86_64-linux,x86_64-macos // diff --git a/test/cases/llvm/for_loop.zig b/test/cases/llvm/for_loop.zig index e48f2edd7133..e7e701aafaa8 100644 --- a/test/cases/llvm/for_loop.zig +++ b/test/cases/llvm/for_loop.zig @@ -11,6 +11,6 @@ pub fn main() void { } // run -// backend=llvm +// backend=stage2,llvm // target=x86_64-linux,x86_64-macos // diff --git a/test/cases/llvm/hello_world.zig b/test/cases/llvm/hello_world.zig index 8bc1c6061486..383b543f9d30 100644 --- a/test/cases/llvm/hello_world.zig +++ b/test/cases/llvm/hello_world.zig @@ -5,7 +5,7 @@ pub fn main() void { } // run -// backend=llvm +// backend=stage2,llvm // target=x86_64-linux,x86_64-macos // link_libc=true // diff --git a/test/cases/llvm/large_slices.zig b/test/cases/llvm/large_slices.zig index 8e9431df8c76..d22189305919 100644 --- a/test/cases/llvm/large_slices.zig +++ b/test/cases/llvm/large_slices.zig @@ -4,6 +4,6 @@ pub fn main() void { } // compile -// backend=llvm +// backend=stage2,llvm // target=x86_64-linux,x86_64-macos // diff --git a/test/cases/llvm/optionals.zig b/test/cases/llvm/optionals.zig index 110a9c511d56..215e7fda008a 100644 --- a/test/cases/llvm/optionals.zig +++ b/test/cases/llvm/optionals.zig @@ -44,6 +44,6 @@ pub fn main() void { } // run -// backend=llvm +// backend=stage2,llvm // target=x86_64-linux,x86_64-macos // diff --git a/test/cases/maximum_sized_integer_literal.zig b/test/cases/maximum_sized_integer_literal.zig index 2157d9ea28cf..7ea593e97202 100644 --- a/test/cases/maximum_sized_integer_literal.zig +++ b/test/cases/maximum_sized_integer_literal.zig @@ -18,5 +18,5 @@ pub fn main() !void { } // run -// backend=llvm +// backend=stage2,llvm // target=native diff --git a/test/cases/returning_undefined_sentinel_terminated_const_u8_slice.zig b/test/cases/returning_undefined_sentinel_terminated_const_u8_slice.zig index 2bf585c5bd23..9e31fe51c9b4 100644 --- a/test/cases/returning_undefined_sentinel_terminated_const_u8_slice.zig +++ b/test/cases/returning_undefined_sentinel_terminated_const_u8_slice.zig @@ -7,5 +7,5 @@ pub fn main() void { } // run -// backend=llvm +// backend=stage2,llvm // target=native diff --git a/test/cases/safety/@alignCast misaligned.zig b/test/cases/safety/@alignCast misaligned.zig index ade27c2747a8..e523a9d1204e 100644 --- a/test/cases/safety/@alignCast misaligned.zig +++ b/test/cases/safety/@alignCast misaligned.zig @@ -21,5 +21,5 @@ fn foo(bytes: []u8) u32 { return int_slice[0]; } // run -// backend=llvm +// backend=stage2,llvm // target=native diff --git a/test/cases/safety/@enumFromInt - no matching tag value.zig b/test/cases/safety/@enumFromInt - no matching tag value.zig index 5051869cc0cb..0021a4d3976c 100644 --- a/test/cases/safety/@enumFromInt - no matching tag value.zig +++ b/test/cases/safety/@enumFromInt - no matching tag value.zig @@ -22,5 +22,5 @@ fn bar(a: u2) Foo { fn baz(_: Foo) void {} // run -// backend=llvm +// backend=stage2,llvm // target=native diff --git a/test/cases/safety/@enumFromInt truncated bits - exhaustive.zig b/test/cases/safety/@enumFromInt truncated bits - exhaustive.zig index e7a6b7e38b1d..92065c4892a9 100644 --- a/test/cases/safety/@enumFromInt truncated bits - exhaustive.zig +++ b/test/cases/safety/@enumFromInt truncated bits - exhaustive.zig @@ -19,5 +19,5 @@ pub fn main() u8 { } // run -// backend=llvm +// backend=stage2,llvm // target=native diff --git a/test/cases/safety/@enumFromInt truncated bits - nonexhaustive.zig b/test/cases/safety/@enumFromInt truncated bits - nonexhaustive.zig index 240b937cf5a9..25959c9ffd89 100644 --- a/test/cases/safety/@enumFromInt truncated bits - nonexhaustive.zig +++ b/test/cases/safety/@enumFromInt truncated bits - nonexhaustive.zig @@ -19,5 +19,5 @@ pub fn main() u8 { } // run -// backend=llvm +// backend=stage2,llvm // target=native diff --git a/test/cases/safety/@errorCast error not present in destination.zig b/test/cases/safety/@errorCast error not present in destination.zig index ff86e1f78382..74e81f2a6040 100644 --- a/test/cases/safety/@errorCast error not present in destination.zig +++ b/test/cases/safety/@errorCast error not present in destination.zig @@ -17,5 +17,5 @@ fn foo(set1: Set1) Set2 { return @errorCast(set1); } // run -// backend=llvm +// backend=stage2,llvm // target=native diff --git a/test/cases/safety/@errorCast error union casted to disjoint set.zig b/test/cases/safety/@errorCast error union casted to disjoint set.zig index c9da2fc636ae..2696a037c7da 100644 --- a/test/cases/safety/@errorCast error union casted to disjoint set.zig +++ b/test/cases/safety/@errorCast error union casted to disjoint set.zig @@ -16,5 +16,5 @@ fn foo() anyerror!i32 { return error.Bar; } // run -// backend=llvm +// backend=stage2,llvm // target=native diff --git a/test/cases/safety/@intCast to u0.zig b/test/cases/safety/@intCast to u0.zig index a33da87f0fa8..1637a859ad09 100644 --- a/test/cases/safety/@intCast to u0.zig +++ b/test/cases/safety/@intCast to u0.zig @@ -18,5 +18,5 @@ fn bar(one: u1, not_zero: i32) void { _ = x; } // run -// backend=llvm +// backend=stage2,llvm // target=native diff --git a/test/cases/safety/@intFromFloat cannot fit - negative out of range.zig b/test/cases/safety/@intFromFloat cannot fit - negative out of range.zig index a5a8d831b337..80edbdfd3cc2 100644 --- a/test/cases/safety/@intFromFloat cannot fit - negative out of range.zig +++ b/test/cases/safety/@intFromFloat cannot fit - negative out of range.zig @@ -16,5 +16,5 @@ fn bar(a: f32) i8 { } fn baz(_: i8) void {} // run -// backend=llvm +// backend=stage2,llvm // target=native diff --git a/test/cases/safety/@intFromFloat cannot fit - negative to unsigned.zig b/test/cases/safety/@intFromFloat cannot fit - negative to unsigned.zig index 1bf1a667659f..ee0c0402737b 100644 --- a/test/cases/safety/@intFromFloat cannot fit - negative to unsigned.zig +++ b/test/cases/safety/@intFromFloat cannot fit - negative to unsigned.zig @@ -16,5 +16,5 @@ fn bar(a: f32) u8 { } fn baz(_: u8) void {} // run -// backend=llvm +// backend=stage2,llvm // target=native diff --git a/test/cases/safety/@intFromFloat cannot fit - positive out of range.zig b/test/cases/safety/@intFromFloat cannot fit - positive out of range.zig index 15a9fa7ad188..c526a7004766 100644 --- a/test/cases/safety/@intFromFloat cannot fit - positive out of range.zig +++ b/test/cases/safety/@intFromFloat cannot fit - positive out of range.zig @@ -16,5 +16,5 @@ fn bar(a: f32) u8 { } fn baz(_: u8) void {} // run -// backend=llvm +// backend=stage2,llvm // target=native diff --git a/test/cases/safety/@ptrFromInt address zero to non-optional byte-aligned pointer.zig b/test/cases/safety/@ptrFromInt address zero to non-optional byte-aligned pointer.zig index f8c448855e34..4944a239e2a9 100644 --- a/test/cases/safety/@ptrFromInt address zero to non-optional byte-aligned pointer.zig +++ b/test/cases/safety/@ptrFromInt address zero to non-optional byte-aligned pointer.zig @@ -15,5 +15,5 @@ pub fn main() !void { return error.TestFailed; } // run -// backend=llvm +// backend=stage2,llvm // target=native diff --git a/test/cases/safety/@ptrFromInt address zero to non-optional pointer.zig b/test/cases/safety/@ptrFromInt address zero to non-optional pointer.zig index c9ae253df7ba..a217de3073b4 100644 --- a/test/cases/safety/@ptrFromInt address zero to non-optional pointer.zig +++ b/test/cases/safety/@ptrFromInt address zero to non-optional pointer.zig @@ -15,5 +15,5 @@ pub fn main() !void { return error.TestFailed; } // run -// backend=llvm +// backend=stage2,llvm // target=native diff --git a/test/cases/safety/@ptrFromInt with misaligned address.zig b/test/cases/safety/@ptrFromInt with misaligned address.zig index 3952ab9baa2f..b95c1b320fcc 100644 --- a/test/cases/safety/@ptrFromInt with misaligned address.zig +++ b/test/cases/safety/@ptrFromInt with misaligned address.zig @@ -15,5 +15,5 @@ pub fn main() !void { return error.TestFailed; } // run -// backend=llvm +// backend=stage2,llvm // target=native diff --git a/test/cases/safety/@tagName on corrupted enum value.zig b/test/cases/safety/@tagName on corrupted enum value.zig index e23cd1fcf692..df6a3f45e0e6 100644 --- a/test/cases/safety/@tagName on corrupted enum value.zig +++ b/test/cases/safety/@tagName on corrupted enum value.zig @@ -22,5 +22,5 @@ pub fn main() !void { } // run -// backend=llvm +// backend=stage2,llvm // target=native diff --git a/test/cases/safety/@tagName on corrupted union value.zig b/test/cases/safety/@tagName on corrupted union value.zig index 09d8276d2339..7b856e57b911 100644 --- a/test/cases/safety/@tagName on corrupted union value.zig +++ b/test/cases/safety/@tagName on corrupted union value.zig @@ -23,5 +23,5 @@ pub fn main() !void { } // run -// backend=llvm +// backend=stage2,llvm // target=native diff --git a/test/cases/safety/array slice sentinel mismatch vector.zig b/test/cases/safety/array slice sentinel mismatch vector.zig index da20d988691f..55ff4b3e39bf 100644 --- a/test/cases/safety/array slice sentinel mismatch vector.zig +++ b/test/cases/safety/array slice sentinel mismatch vector.zig @@ -15,5 +15,5 @@ pub fn main() !void { return error.TestFailed; } // run -// backend=llvm +// backend=stage2,llvm // target=native diff --git a/test/cases/safety/array slice sentinel mismatch.zig b/test/cases/safety/array slice sentinel mismatch.zig index fc196186732d..ab7a513b3998 100644 --- a/test/cases/safety/array slice sentinel mismatch.zig +++ b/test/cases/safety/array slice sentinel mismatch.zig @@ -15,5 +15,5 @@ pub fn main() !void { return error.TestFailed; } // run -// backend=llvm +// backend=stage2,llvm // target=native diff --git a/test/cases/safety/bad union field access.zig b/test/cases/safety/bad union field access.zig index c6706d41764d..14ebb1f344ec 100644 --- a/test/cases/safety/bad union field access.zig +++ b/test/cases/safety/bad union field access.zig @@ -23,5 +23,5 @@ fn bar(f: *Foo) void { f.float = 12.34; } // run -// backend=llvm +// backend=stage2,llvm // target=native diff --git a/test/cases/safety/calling panic.zig b/test/cases/safety/calling panic.zig index 832bc5f19ad2..7b8a478be3b0 100644 --- a/test/cases/safety/calling panic.zig +++ b/test/cases/safety/calling panic.zig @@ -12,5 +12,5 @@ pub fn main() !void { return error.TestFailed; } // run -// backend=llvm +// backend=stage2,llvm // target=native diff --git a/test/cases/safety/cast []u8 to bigger slice of wrong size.zig b/test/cases/safety/cast []u8 to bigger slice of wrong size.zig index a72b2fcca2ca..b6b8e89bf9aa 100644 --- a/test/cases/safety/cast []u8 to bigger slice of wrong size.zig +++ b/test/cases/safety/cast []u8 to bigger slice of wrong size.zig @@ -17,5 +17,5 @@ fn widenSlice(slice: []align(1) const u8) []align(1) const i32 { return std.mem.bytesAsSlice(i32, slice); } // run -// backend=llvm +// backend=stage2,llvm // target=native diff --git a/test/cases/safety/cast integer to global error and no code matches.zig b/test/cases/safety/cast integer to global error and no code matches.zig index 61daf07a2ba2..fa0474a88cb4 100644 --- a/test/cases/safety/cast integer to global error and no code matches.zig +++ b/test/cases/safety/cast integer to global error and no code matches.zig @@ -15,5 +15,5 @@ fn bar(x: u16) anyerror { return @errorFromInt(x); } // run -// backend=llvm +// backend=stage2,llvm // target=native diff --git a/test/cases/safety/empty slice with sentinel out of bounds.zig b/test/cases/safety/empty slice with sentinel out of bounds.zig index 69201fde307c..51846f894f61 100644 --- a/test/cases/safety/empty slice with sentinel out of bounds.zig +++ b/test/cases/safety/empty slice with sentinel out of bounds.zig @@ -17,5 +17,5 @@ pub fn main() !void { } // run -// backend=llvm +// backend=stage2,llvm // target=native diff --git a/test/cases/safety/exact division failure - vectors.zig b/test/cases/safety/exact division failure - vectors.zig index c5df2b276f17..30d5dcf11a5b 100644 --- a/test/cases/safety/exact division failure - vectors.zig +++ b/test/cases/safety/exact division failure - vectors.zig @@ -19,5 +19,5 @@ fn divExact(a: @Vector(4, i32), b: @Vector(4, i32)) @Vector(4, i32) { return @divExact(a, b); } // run -// backend=llvm +// backend=stage2,llvm // target=native diff --git a/test/cases/safety/exact division failure.zig b/test/cases/safety/exact division failure.zig index cdf1b1fb8d31..be86853c77ba 100644 --- a/test/cases/safety/exact division failure.zig +++ b/test/cases/safety/exact division failure.zig @@ -17,5 +17,5 @@ fn divExact(a: i32, b: i32) i32 { return @divExact(a, b); } // run -// backend=llvm +// backend=stage2,llvm // target=native diff --git a/test/cases/safety/for_len_mismatch.zig b/test/cases/safety/for_len_mismatch.zig index ee21b947d7ee..8841f11aa7cb 100644 --- a/test/cases/safety/for_len_mismatch.zig +++ b/test/cases/safety/for_len_mismatch.zig @@ -21,5 +21,5 @@ pub fn main() !void { return error.TestFailed; } // run -// backend=llvm +// backend=stage2,llvm // target=native diff --git a/test/cases/safety/for_len_mismatch_three.zig b/test/cases/safety/for_len_mismatch_three.zig index 70f854def51f..4efe18d3cd0a 100644 --- a/test/cases/safety/for_len_mismatch_three.zig +++ b/test/cases/safety/for_len_mismatch_three.zig @@ -20,5 +20,5 @@ pub fn main() !void { return error.TestFailed; } // run -// backend=llvm +// backend=stage2,llvm // target=native diff --git a/test/cases/safety/ignored expression integer overflow.zig b/test/cases/safety/ignored expression integer overflow.zig index f8e3f0bf0aa6..10890108540d 100644 --- a/test/cases/safety/ignored expression integer overflow.zig +++ b/test/cases/safety/ignored expression integer overflow.zig @@ -17,5 +17,5 @@ pub fn main() !void { } // run -// backend=llvm +// backend=stage2,llvm // target=native diff --git a/test/cases/safety/integer addition overflow.zig b/test/cases/safety/integer addition overflow.zig index 4f7c5b2cb3f5..499e8b10159f 100644 --- a/test/cases/safety/integer addition overflow.zig +++ b/test/cases/safety/integer addition overflow.zig @@ -19,5 +19,5 @@ fn add(a: u16, b: u16) u16 { } // run -// backend=llvm +// backend=stage2,llvm // target=native diff --git a/test/cases/safety/integer division by zero - vectors.zig b/test/cases/safety/integer division by zero - vectors.zig index 6e2af616b909..63e77a0dd4d0 100644 --- a/test/cases/safety/integer division by zero - vectors.zig +++ b/test/cases/safety/integer division by zero - vectors.zig @@ -18,5 +18,5 @@ fn div0(a: @Vector(4, i32), b: @Vector(4, i32)) @Vector(4, i32) { return @divTrunc(a, b); } // run -// backend=llvm +// backend=stage2,llvm // target=native diff --git a/test/cases/safety/integer division by zero.zig b/test/cases/safety/integer division by zero.zig index 0d1b79d26d8f..e8eba5c4f0bf 100644 --- a/test/cases/safety/integer division by zero.zig +++ b/test/cases/safety/integer division by zero.zig @@ -16,5 +16,5 @@ fn div0(a: i32, b: i32) i32 { return @divTrunc(a, b); } // run -// backend=llvm +// backend=stage2,llvm // target=native diff --git a/test/cases/safety/integer multiplication overflow.zig b/test/cases/safety/integer multiplication overflow.zig index 641801277dbd..f7f4148a1556 100644 --- a/test/cases/safety/integer multiplication overflow.zig +++ b/test/cases/safety/integer multiplication overflow.zig @@ -17,5 +17,5 @@ fn mul(a: u16, b: u16) u16 { return a * b; } // run -// backend=llvm +// backend=stage2,llvm // target=native diff --git a/test/cases/safety/integer negation overflow.zig b/test/cases/safety/integer negation overflow.zig index 3d4c134c4a68..cfdfed04299e 100644 --- a/test/cases/safety/integer negation overflow.zig +++ b/test/cases/safety/integer negation overflow.zig @@ -17,5 +17,5 @@ fn neg(a: i16) i16 { return -a; } // run -// backend=llvm +// backend=stage2,llvm // target=native diff --git a/test/cases/safety/integer subtraction overflow.zig b/test/cases/safety/integer subtraction overflow.zig index 84a16f55b870..14e9131c3b9a 100644 --- a/test/cases/safety/integer subtraction overflow.zig +++ b/test/cases/safety/integer subtraction overflow.zig @@ -17,5 +17,5 @@ fn sub(a: u16, b: u16) u16 { return a - b; } // run -// backend=llvm +// backend=stage2,llvm // target=native diff --git a/test/cases/safety/memcpy_alias.zig b/test/cases/safety/memcpy_alias.zig index d87a7bf6aa4d..737145746752 100644 --- a/test/cases/safety/memcpy_alias.zig +++ b/test/cases/safety/memcpy_alias.zig @@ -14,5 +14,5 @@ pub fn main() !void { @memcpy(buffer[0..len], buffer[4 .. 4 + len]); } // run -// backend=llvm +// backend=stage2,llvm // target=native diff --git a/test/cases/safety/memcpy_len_mismatch.zig b/test/cases/safety/memcpy_len_mismatch.zig index 6ca36abccbbf..fb6aa2e59b32 100644 --- a/test/cases/safety/memcpy_len_mismatch.zig +++ b/test/cases/safety/memcpy_len_mismatch.zig @@ -14,5 +14,5 @@ pub fn main() !void { @memcpy(buffer[0..len], buffer[len .. len + 4]); } // run -// backend=llvm +// backend=stage2,llvm // target=native diff --git a/test/cases/safety/memset_array_undefined_bytes.zig b/test/cases/safety/memset_array_undefined_bytes.zig index e0ce2dac0443..20a65d65d62a 100644 --- a/test/cases/safety/memset_array_undefined_bytes.zig +++ b/test/cases/safety/memset_array_undefined_bytes.zig @@ -14,5 +14,5 @@ pub fn main() !void { x += buffer[2]; } // run -// backend=llvm +// backend=stage2,llvm // target=native diff --git a/test/cases/safety/memset_array_undefined_large.zig b/test/cases/safety/memset_array_undefined_large.zig index dbc1cf442024..a52bfecbf029 100644 --- a/test/cases/safety/memset_array_undefined_large.zig +++ b/test/cases/safety/memset_array_undefined_large.zig @@ -14,5 +14,5 @@ pub fn main() !void { x += buffer[2]; } // run -// backend=llvm +// backend=stage2,llvm // target=native diff --git a/test/cases/safety/memset_slice_undefined_bytes.zig b/test/cases/safety/memset_slice_undefined_bytes.zig index 4214b5db4b76..fb6799930629 100644 --- a/test/cases/safety/memset_slice_undefined_bytes.zig +++ b/test/cases/safety/memset_slice_undefined_bytes.zig @@ -16,5 +16,5 @@ pub fn main() !void { x += buffer[2]; } // run -// backend=llvm +// backend=stage2,llvm // target=native diff --git a/test/cases/safety/memset_slice_undefined_large.zig b/test/cases/safety/memset_slice_undefined_large.zig index d1f4f651d33b..166557240c70 100644 --- a/test/cases/safety/memset_slice_undefined_large.zig +++ b/test/cases/safety/memset_slice_undefined_large.zig @@ -16,5 +16,5 @@ pub fn main() !void { x += buffer[2]; } // run -// backend=llvm +// backend=stage2,llvm // target=native diff --git a/test/cases/safety/modrem by zero.zig b/test/cases/safety/modrem by zero.zig index f201062c0e8f..35b7e37e3ac9 100644 --- a/test/cases/safety/modrem by zero.zig +++ b/test/cases/safety/modrem by zero.zig @@ -16,5 +16,5 @@ fn div0(a: u32, b: u32) u32 { return a / b; } // run -// backend=llvm +// backend=stage2,llvm // target=native diff --git a/test/cases/safety/modulus by zero.zig b/test/cases/safety/modulus by zero.zig index 6714458979d0..cdeab00dbc53 100644 --- a/test/cases/safety/modulus by zero.zig +++ b/test/cases/safety/modulus by zero.zig @@ -16,5 +16,5 @@ fn mod0(a: i32, b: i32) i32 { return @mod(a, b); } // run -// backend=llvm +// backend=stage2,llvm // target=native diff --git a/test/cases/safety/noreturn returned.zig b/test/cases/safety/noreturn returned.zig index c3c30af37ee4..c92fb08e62cb 100644 --- a/test/cases/safety/noreturn returned.zig +++ b/test/cases/safety/noreturn returned.zig @@ -19,5 +19,5 @@ pub fn main() void { bar(); } // run -// backend=llvm +// backend=stage2,llvm // target=native diff --git a/test/cases/safety/optional unwrap operator on C pointer.zig b/test/cases/safety/optional unwrap operator on C pointer.zig index bd3313265a50..98135cfae493 100644 --- a/test/cases/safety/optional unwrap operator on C pointer.zig +++ b/test/cases/safety/optional unwrap operator on C pointer.zig @@ -15,5 +15,5 @@ pub fn main() !void { return error.TestFailed; } // run -// backend=llvm +// backend=stage2,llvm // target=native diff --git a/test/cases/safety/optional unwrap operator on null pointer.zig b/test/cases/safety/optional unwrap operator on null pointer.zig index 9dda4d0a9e07..6ac54e6bd0e9 100644 --- a/test/cases/safety/optional unwrap operator on null pointer.zig +++ b/test/cases/safety/optional unwrap operator on null pointer.zig @@ -15,5 +15,5 @@ pub fn main() !void { return error.TestFailed; } // run -// backend=llvm +// backend=stage2,llvm // target=native diff --git a/test/cases/safety/out of bounds array slice by length.zig b/test/cases/safety/out of bounds array slice by length.zig index 62768abebf60..325749a5eb2b 100644 --- a/test/cases/safety/out of bounds array slice by length.zig +++ b/test/cases/safety/out of bounds array slice by length.zig @@ -16,5 +16,5 @@ fn foo(a: u32) u32 { return a; } // run -// backend=llvm +// backend=stage2,llvm // target=native diff --git a/test/cases/safety/out of bounds slice access.zig b/test/cases/safety/out of bounds slice access.zig index b4c87948a5ce..f4f34a203fa5 100644 --- a/test/cases/safety/out of bounds slice access.zig +++ b/test/cases/safety/out of bounds slice access.zig @@ -17,5 +17,5 @@ fn bar(a: []const i32) i32 { } fn baz(_: i32) void {} // run -// backend=llvm +// backend=stage2,llvm // target=native diff --git a/test/cases/safety/pointer casting null to non-optional pointer.zig b/test/cases/safety/pointer casting null to non-optional pointer.zig index fdf8dc17ce27..33da071e7331 100644 --- a/test/cases/safety/pointer casting null to non-optional pointer.zig +++ b/test/cases/safety/pointer casting null to non-optional pointer.zig @@ -17,5 +17,5 @@ pub fn main() !void { } // run -// backend=llvm +// backend=stage2,llvm // target=native diff --git a/test/cases/safety/pointer casting to null function pointer.zig b/test/cases/safety/pointer casting to null function pointer.zig index 8f399b66dc27..a57e71cb8f01 100644 --- a/test/cases/safety/pointer casting to null function pointer.zig +++ b/test/cases/safety/pointer casting to null function pointer.zig @@ -19,5 +19,5 @@ pub fn main() !void { } // run -// backend=llvm +// backend=stage2,llvm // target=native diff --git a/test/cases/safety/pointer slice sentinel mismatch.zig b/test/cases/safety/pointer slice sentinel mismatch.zig index 3972528edf42..519b04b9168c 100644 --- a/test/cases/safety/pointer slice sentinel mismatch.zig +++ b/test/cases/safety/pointer slice sentinel mismatch.zig @@ -17,5 +17,5 @@ pub fn main() !void { } // run -// backend=llvm +// backend=stage2,llvm // target=native diff --git a/test/cases/safety/remainder division by zero.zig b/test/cases/safety/remainder division by zero.zig index 3dc97f6e16fd..2d938a2fd6f4 100644 --- a/test/cases/safety/remainder division by zero.zig +++ b/test/cases/safety/remainder division by zero.zig @@ -16,5 +16,5 @@ fn rem0(a: i32, b: i32) i32 { return @rem(a, b); } // run -// backend=llvm +// backend=stage2,llvm // target=native diff --git a/test/cases/safety/shift left by huge amount.zig b/test/cases/safety/shift left by huge amount.zig index a038c0ee4442..374b03d12378 100644 --- a/test/cases/safety/shift left by huge amount.zig +++ b/test/cases/safety/shift left by huge amount.zig @@ -18,5 +18,5 @@ pub fn main() !void { } // run -// backend=llvm +// backend=stage2,llvm // target=native diff --git a/test/cases/safety/shift right by huge amount.zig b/test/cases/safety/shift right by huge amount.zig index ced81d948d48..173e6fcd7efc 100644 --- a/test/cases/safety/shift right by huge amount.zig +++ b/test/cases/safety/shift right by huge amount.zig @@ -18,5 +18,5 @@ pub fn main() !void { } // run -// backend=llvm +// backend=stage2,llvm // target=native diff --git a/test/cases/safety/signed integer division overflow - vectors.zig b/test/cases/safety/signed integer division overflow - vectors.zig index 6346d9f1a1dd..0de062094dfa 100644 --- a/test/cases/safety/signed integer division overflow - vectors.zig +++ b/test/cases/safety/signed integer division overflow - vectors.zig @@ -19,5 +19,5 @@ fn div(a: @Vector(4, i16), b: @Vector(4, i16)) @Vector(4, i16) { return @divTrunc(a, b); } // run -// backend=llvm +// backend=stage2,llvm // target=native diff --git a/test/cases/safety/signed integer division overflow.zig b/test/cases/safety/signed integer division overflow.zig index 9d1014ceec08..0d67f7264966 100644 --- a/test/cases/safety/signed integer division overflow.zig +++ b/test/cases/safety/signed integer division overflow.zig @@ -17,5 +17,5 @@ fn div(a: i16, b: i16) i16 { return @divTrunc(a, b); } // run -// backend=llvm +// backend=stage2,llvm // target=native diff --git a/test/cases/safety/signed integer not fitting in cast to unsigned integer - widening.zig b/test/cases/safety/signed integer not fitting in cast to unsigned integer - widening.zig index 87c812eddc20..3ee2f1fefaed 100644 --- a/test/cases/safety/signed integer not fitting in cast to unsigned integer - widening.zig +++ b/test/cases/safety/signed integer not fitting in cast to unsigned integer - widening.zig @@ -15,5 +15,5 @@ pub fn main() !void { return error.TestFailed; } // run -// backend=llvm +// backend=stage2,llvm // target=native diff --git a/test/cases/safety/signed integer not fitting in cast to unsigned integer.zig b/test/cases/safety/signed integer not fitting in cast to unsigned integer.zig index 5d8c3f88c8a3..44402c329e04 100644 --- a/test/cases/safety/signed integer not fitting in cast to unsigned integer.zig +++ b/test/cases/safety/signed integer not fitting in cast to unsigned integer.zig @@ -16,5 +16,5 @@ fn unsigned_cast(x: i32) u32 { return @intCast(x); } // run -// backend=llvm +// backend=stage2,llvm // target=native diff --git a/test/cases/safety/signed shift left overflow.zig b/test/cases/safety/signed shift left overflow.zig index f9a4db81ce92..54a51e0ccdfd 100644 --- a/test/cases/safety/signed shift left overflow.zig +++ b/test/cases/safety/signed shift left overflow.zig @@ -17,5 +17,5 @@ fn shl(a: i16, b: u4) i16 { return @shlExact(a, b); } // run -// backend=llvm +// backend=stage2,llvm // target=native diff --git a/test/cases/safety/signed shift right overflow.zig b/test/cases/safety/signed shift right overflow.zig index 7d71b9ffbde3..1a0c5973c9f4 100644 --- a/test/cases/safety/signed shift right overflow.zig +++ b/test/cases/safety/signed shift right overflow.zig @@ -17,5 +17,5 @@ fn shr(a: i16, b: u4) i16 { return @shrExact(a, b); } // run -// backend=llvm +// backend=stage2,llvm // target=native diff --git a/test/cases/safety/signed-unsigned vector cast.zig b/test/cases/safety/signed-unsigned vector cast.zig index 2e3b4d25d52d..f4da258f28b2 100644 --- a/test/cases/safety/signed-unsigned vector cast.zig +++ b/test/cases/safety/signed-unsigned vector cast.zig @@ -17,5 +17,5 @@ pub fn main() !void { } // run -// backend=llvm +// backend=stage2,llvm // target=native diff --git a/test/cases/safety/slice by length sentinel mismatch on lhs.zig b/test/cases/safety/slice by length sentinel mismatch on lhs.zig index 70fa97f48ab9..c66a968d4ba5 100644 --- a/test/cases/safety/slice by length sentinel mismatch on lhs.zig +++ b/test/cases/safety/slice by length sentinel mismatch on lhs.zig @@ -14,5 +14,5 @@ pub fn main() !void { return error.TestFailed; } // run -// backend=llvm +// backend=stage2,llvm // target=native diff --git a/test/cases/safety/slice by length sentinel mismatch on rhs.zig b/test/cases/safety/slice by length sentinel mismatch on rhs.zig index d3cff477289c..a4a2189a9cf0 100644 --- a/test/cases/safety/slice by length sentinel mismatch on rhs.zig +++ b/test/cases/safety/slice by length sentinel mismatch on rhs.zig @@ -14,5 +14,5 @@ pub fn main() !void { return error.TestFailed; } // run -// backend=llvm +// backend=stage2,llvm // target=native diff --git a/test/cases/safety/slice sentinel mismatch - floats.zig b/test/cases/safety/slice sentinel mismatch - floats.zig index 19b9b86c3ba8..45577acb00d4 100644 --- a/test/cases/safety/slice sentinel mismatch - floats.zig +++ b/test/cases/safety/slice sentinel mismatch - floats.zig @@ -16,5 +16,5 @@ pub fn main() !void { } // run -// backend=llvm +// backend=stage2,llvm // target=native diff --git a/test/cases/safety/slice sentinel mismatch - optional pointers.zig b/test/cases/safety/slice sentinel mismatch - optional pointers.zig index a3b4a98575e6..38ab78b2c1c9 100644 --- a/test/cases/safety/slice sentinel mismatch - optional pointers.zig +++ b/test/cases/safety/slice sentinel mismatch - optional pointers.zig @@ -16,5 +16,5 @@ pub fn main() !void { } // run -// backend=llvm +// backend=stage2,llvm // target=native diff --git a/test/cases/safety/slice slice sentinel mismatch.zig b/test/cases/safety/slice slice sentinel mismatch.zig index 635706b2c58a..51d4c16596b2 100644 --- a/test/cases/safety/slice slice sentinel mismatch.zig +++ b/test/cases/safety/slice slice sentinel mismatch.zig @@ -15,5 +15,5 @@ pub fn main() !void { return error.TestFailed; } // run -// backend=llvm +// backend=stage2,llvm // target=native diff --git a/test/cases/safety/slice start index greater than end index.zig b/test/cases/safety/slice start index greater than end index.zig index 83d489ab5699..a6dde3ac63a0 100644 --- a/test/cases/safety/slice start index greater than end index.zig +++ b/test/cases/safety/slice start index greater than end index.zig @@ -20,5 +20,5 @@ pub fn main() !void { } // run -// backend=llvm +// backend=stage2,llvm // target=native diff --git a/test/cases/safety/slice with sentinel out of bounds - runtime len.zig b/test/cases/safety/slice with sentinel out of bounds - runtime len.zig index abb3cc42f092..7039f541e33e 100644 --- a/test/cases/safety/slice with sentinel out of bounds - runtime len.zig +++ b/test/cases/safety/slice with sentinel out of bounds - runtime len.zig @@ -19,5 +19,5 @@ pub fn main() !void { } // run -// backend=llvm +// backend=stage2,llvm // target=native diff --git a/test/cases/safety/slice with sentinel out of bounds.zig b/test/cases/safety/slice with sentinel out of bounds.zig index 1683dc9d3f32..8439e8c73798 100644 --- a/test/cases/safety/slice with sentinel out of bounds.zig +++ b/test/cases/safety/slice with sentinel out of bounds.zig @@ -17,5 +17,5 @@ pub fn main() !void { } // run -// backend=llvm +// backend=stage2,llvm // target=native diff --git a/test/cases/safety/slicing null C pointer - runtime len.zig b/test/cases/safety/slicing null C pointer - runtime len.zig index dd73a5011205..763553b04aed 100644 --- a/test/cases/safety/slicing null C pointer - runtime len.zig +++ b/test/cases/safety/slicing null C pointer - runtime len.zig @@ -17,5 +17,5 @@ pub fn main() !void { return error.TestFailed; } // run -// backend=llvm +// backend=stage2,llvm // target=native diff --git a/test/cases/safety/slicing null C pointer.zig b/test/cases/safety/slicing null C pointer.zig index 862f2dcfdba6..a928fd585f9d 100644 --- a/test/cases/safety/slicing null C pointer.zig +++ b/test/cases/safety/slicing null C pointer.zig @@ -16,5 +16,5 @@ pub fn main() !void { return error.TestFailed; } // run -// backend=llvm +// backend=stage2,llvm // target=native diff --git a/test/cases/safety/switch else on corrupt enum value - one prong.zig b/test/cases/safety/switch else on corrupt enum value - one prong.zig index c11227c3bee8..73f6ed9dc8a0 100644 --- a/test/cases/safety/switch else on corrupt enum value - one prong.zig +++ b/test/cases/safety/switch else on corrupt enum value - one prong.zig @@ -20,5 +20,5 @@ pub fn main() !void { } } // run -// backend=llvm +// backend=stage2,llvm // target=native diff --git a/test/cases/safety/switch else on corrupt enum value - union.zig b/test/cases/safety/switch else on corrupt enum value - union.zig index a63c78597e66..77dacd86c65d 100644 --- a/test/cases/safety/switch else on corrupt enum value - union.zig +++ b/test/cases/safety/switch else on corrupt enum value - union.zig @@ -25,5 +25,5 @@ pub fn main() !void { } } // run -// backend=llvm +// backend=stage2,llvm // target=native diff --git a/test/cases/safety/switch else on corrupt enum value.zig b/test/cases/safety/switch else on corrupt enum value.zig index 7e050838c086..228e3c70eca1 100644 --- a/test/cases/safety/switch else on corrupt enum value.zig +++ b/test/cases/safety/switch else on corrupt enum value.zig @@ -19,5 +19,5 @@ pub fn main() !void { } } // run -// backend=llvm +// backend=stage2,llvm // target=native diff --git a/test/cases/safety/switch on corrupted enum value.zig b/test/cases/safety/switch on corrupted enum value.zig index f89076191172..4d46d2e7a7dc 100644 --- a/test/cases/safety/switch on corrupted enum value.zig +++ b/test/cases/safety/switch on corrupted enum value.zig @@ -23,5 +23,5 @@ pub fn main() !void { } // run -// backend=llvm +// backend=stage2,llvm // target=native diff --git a/test/cases/safety/switch on corrupted union value.zig b/test/cases/safety/switch on corrupted union value.zig index fc93c9d6e7f0..0f622dcbd80b 100644 --- a/test/cases/safety/switch on corrupted union value.zig +++ b/test/cases/safety/switch on corrupted union value.zig @@ -23,5 +23,5 @@ pub fn main() !void { } // run -// backend=llvm +// backend=stage2,llvm // target=native diff --git a/test/cases/safety/unreachable.zig b/test/cases/safety/unreachable.zig index 492f7958b18b..fc1e886540aa 100644 --- a/test/cases/safety/unreachable.zig +++ b/test/cases/safety/unreachable.zig @@ -11,5 +11,5 @@ pub fn main() !void { unreachable; } // run -// backend=llvm +// backend=stage2,llvm // target=native diff --git a/test/cases/safety/unsigned integer not fitting in cast to signed integer - same bit count.zig b/test/cases/safety/unsigned integer not fitting in cast to signed integer - same bit count.zig index 9bd4c4200702..6a3f0c08a644 100644 --- a/test/cases/safety/unsigned integer not fitting in cast to signed integer - same bit count.zig +++ b/test/cases/safety/unsigned integer not fitting in cast to signed integer - same bit count.zig @@ -15,5 +15,5 @@ pub fn main() !void { return error.TestFailed; } // run -// backend=llvm +// backend=stage2,llvm // target=native diff --git a/test/cases/safety/unsigned shift left overflow.zig b/test/cases/safety/unsigned shift left overflow.zig index d38d8f6ecf06..e2f58f0f3bfd 100644 --- a/test/cases/safety/unsigned shift left overflow.zig +++ b/test/cases/safety/unsigned shift left overflow.zig @@ -17,5 +17,5 @@ fn shl(a: u16, b: u4) u16 { return @shlExact(a, b); } // run -// backend=llvm +// backend=stage2,llvm // target=native diff --git a/test/cases/safety/unsigned shift right overflow.zig b/test/cases/safety/unsigned shift right overflow.zig index 121797a17d4c..6ded52098d34 100644 --- a/test/cases/safety/unsigned shift right overflow.zig +++ b/test/cases/safety/unsigned shift right overflow.zig @@ -17,5 +17,5 @@ fn shr(a: u16, b: u4) u16 { return @shrExact(a, b); } // run -// backend=llvm +// backend=stage2,llvm // target=native diff --git a/test/cases/safety/unwrap error switch.zig b/test/cases/safety/unwrap error switch.zig index 0723a9fb246a..b3194bd2e0d0 100644 --- a/test/cases/safety/unwrap error switch.zig +++ b/test/cases/safety/unwrap error switch.zig @@ -17,5 +17,5 @@ fn bar() !void { return error.Whatever; } // run -// backend=llvm +// backend=stage2,llvm // target=native diff --git a/test/cases/safety/unwrap error.zig b/test/cases/safety/unwrap error.zig index e2d7ea725b8b..9fe7d437bc4e 100644 --- a/test/cases/safety/unwrap error.zig +++ b/test/cases/safety/unwrap error.zig @@ -15,5 +15,5 @@ fn bar() !void { return error.Whatever; } // run -// backend=llvm +// backend=stage2,llvm // target=native diff --git a/test/cases/safety/value does not fit in shortening cast - u0.zig b/test/cases/safety/value does not fit in shortening cast - u0.zig index ec111a2caedd..3644437ea124 100644 --- a/test/cases/safety/value does not fit in shortening cast - u0.zig +++ b/test/cases/safety/value does not fit in shortening cast - u0.zig @@ -17,5 +17,5 @@ fn shorten_cast(x: u8) u0 { return @intCast(x); } // run -// backend=llvm +// backend=stage2,llvm // target=native diff --git a/test/cases/safety/value does not fit in shortening cast.zig b/test/cases/safety/value does not fit in shortening cast.zig index a5ea41659e86..b48c4698faf5 100644 --- a/test/cases/safety/value does not fit in shortening cast.zig +++ b/test/cases/safety/value does not fit in shortening cast.zig @@ -17,5 +17,5 @@ fn shorten_cast(x: i32) i8 { return @intCast(x); } // run -// backend=llvm +// backend=stage2,llvm // target=native diff --git a/test/cases/safety/zero casted to error.zig b/test/cases/safety/zero casted to error.zig index 78340db3163c..1ffa995260b1 100644 --- a/test/cases/safety/zero casted to error.zig +++ b/test/cases/safety/zero casted to error.zig @@ -15,5 +15,5 @@ fn bar(x: u16) anyerror { return @errorFromInt(x); } // run -// backend=llvm +// backend=stage2,llvm // target=native diff --git a/test/cases/taking_pointer_of_global_tagged_union.zig b/test/cases/taking_pointer_of_global_tagged_union.zig index ee9df2178350..accb22667dfb 100644 --- a/test/cases/taking_pointer_of_global_tagged_union.zig +++ b/test/cases/taking_pointer_of_global_tagged_union.zig @@ -22,5 +22,5 @@ pub fn main() !void { } // run -// backend=llvm +// backend=stage2,llvm // target=native diff --git a/test/cases/union_unresolved_layout.zig b/test/cases/union_unresolved_layout.zig index f76c929e8a05..4c458a90f3f2 100644 --- a/test/cases/union_unresolved_layout.zig +++ b/test/cases/union_unresolved_layout.zig @@ -11,5 +11,5 @@ pub fn main() !void { } // run -// backend=llvm +// backend=stage2,llvm // diff --git a/test/src/Cases.zig b/test/src/Cases.zig index db1a564373ec..f386bc3d63a9 100644 --- a/test/src/Cases.zig +++ b/test/src/Cases.zig @@ -472,6 +472,10 @@ fn addFromDirInner( // Rosetta has issues with ZLD continue; } + if (backend == .stage2 and target.ofmt == .coff) { + // COFF linker has bitrotted + continue; + } const next = ctx.cases.items.len; try ctx.cases.append(.{